1

我知道至少有几个这样的问题

检测谷歌地图街景静态图像的“我们没有图像”

我如何判断 Google 的 Streetview Image API 是否返回“抱歉,我们这里没有图像”(即 NULL)结果?

这些文章提供了几个解决方案。我在这里和通过谷歌搜索看到的最受欢迎的两个是:

  1. 检测图像的大小以确定您是否从谷歌静态图像 API 获得“好”图像
  2. 调用 getPanoramaByLocation 服务以确定某个位置是否可以使用街景

不幸的是,我不想使用第一个解决方案,因为它感觉像是 hack,而第二个解决方案似乎并不总是有效。

  var center = new google.maps.LatLng(latitude, longitude);
  var streetViewService = new google.maps.StreetViewService();
  var maxDistanceFromCenter = 75; //meters
  streetViewService.getPanoramaByLocation(center, maxDistanceFromCenter, function (streetViewPanoramaData, status) {
      if (status === google.maps.StreetViewStatus.OK) {
        var key = /**smarty** #mapKey# **smarty**/;
        var url = 'http://maps.googleapis.com/maps/api/streetview?size=320x320&location=' + latitude + ',%20' + longitude + '&sensor=false&key=' + key;
        jQuery('.ui-page-active .streetView').attr('src', url);
      } else {
        console.log('error calling street view');
      }
  });
};

此代码将正确确定全景图像是否可用于某个位置,但有时静态图像不适用于该完全相同的位置。

我的 getPanoramaByLocation 半径从 100 开始,这似乎是一个安全的数字,但后来我发现出现“抱歉,我们这里没有图像”错误的情况。所以我去了75,现在我必须去50。

似乎 getPanoramaByLocation 不是静态街景图像可用的安全指标,或者可能是,但应该使用半径的特定值。我在文档中找不到它。所以我的问题是:我的 maxDistanceFromCenter 使用的最安全半径是多少?

4

0 回答 0