检测Google Static StreetView API影像可用性

时间:2013-03-18 19:12:51

标签: javascript google-maps-api-3

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

detecting "we have no imagery" of google maps street view static images

How can I tell if Google's Streetview Image API Returns "Sorry, we have no imagery here" (ie. NULL) Result?

这些文章提供了几种解决方案。我在这里看到的两个最受欢迎的游戏是:

  1. 检测图像的大小以确定您是否从Google静态图像API获得“好”图像
  2. 调用getPanoramaByLocation服务以确定街景是否可用于某个位置
  3. 不幸的是,我不想使用第一个解决方案,因为它感觉像黑客,而第二个解决方案似乎并不总是有效。

      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');
          }
      });
    };
    

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

    我从100开始为我的getPanoramaByLocation半径,这似乎是一个安全的数字,但后来我发现了一个案例,我得到了“抱歉,我们这里没有图像”错误。所以我去了75,现在我要去50.

    似乎getPanoramaByLocation不是静态街景图像可用的安全指示器,或者可能是,但是应该使用的半径有一个特定值。我虽然在文档中找不到它。所以我的问题是:我的maxDistanceFromCenter最安全的半径是什么?

0 个答案:

没有答案