image - 检测谷歌地图街景静态图片的 "we have no imagery"

标签 image google-maps static google-street-view

我正在生成街景静态图像,如下所示:

https://maps.googleapis.com/maps/api/streetview?size=1080x400&location=%s&fov=90&heading=235&pitch=0&key=%s

如果您访问该链接,您会看到一张图片,上面写着“抱歉,我们没有这方面的图片......”

有什么方法可以检测到这种“抱歉”状态,以便我可以退回到另一张图片?

最佳答案

一种快速的解决方案是使用 xmlrpc 加载图像文件并检查其 md5sum 是否为 30234b543d5438e0a0614bf07f1ebd25。 ,或者它的大小是1717字节(另一个图像不太可能具有完全相同的大小),但这不是很可靠,因为我已经看到 Google 更改了图像中文本的位置。尽管对于原型(prototype)来说这是一个很好的开始。

您可以改为进行图像处理。请注意,由于 Google 可以决定随时更改图像的外观,因此它仍然不是非常强大。你必须决定它是否值得。

无论如何,这里是我将如何使用 jQuery:

  • 加载图像并打开 2D 上下文以直接访问 pxiel(参见 this question 了解如何操作)
  • 分析图像:
  • 在随机位置采样 2×2 像素组;我推荐至少30组
  • 如果所有像素具有相同的值并且它们的 R/G/B 值相差不超过 10%(即它们是灰色的)
  • ,则一组 2×2 像素是好的。
  • 计算图像中好像素组的比例
  • 如果有超过 70% 的好像素组,那么我们很确定这是“无图像”版本:用您选择的另一个图像替换它。

  • 我不建议直接测试 RGB 值的原因是因为 JPEG 解压缩在不同浏览器上的行为可能略有不同。

    关于image - 检测谷歌地图街景静态图片的 "we have no imagery",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839746/

    相关文章:

    java - 从通用管理器类中,如何以静态方式访问有关其实例的信息?

    html - 删除容器内创建的空间

    javascript - 静态谷歌地图不适用于我的情况

    javascript - vue-google-maps - 如何设置 map 样式?

    android - 谷歌地图标记 OnClick 事件

    c# - 网站中静态变量的奇怪行为

    android - 如何在 Android 中使用位图作为背景从 LinearLayout 中删除黑条?

    image - 如何使用GDI +将图像保存到BMP/PNG/JPG?

    javascript - Dart 中未定义 new Image()

    c - 存储类 : Understanding Static