我正在使用Google Maps API for JavaScript。
如何生成有效的随机街景坐标?
有没有API默认方法,或者我必须编写自己的方法,该怎么做?

最佳答案

街景视图仅在某些位置可用,因此并非每对经纬度都是街景视图全景图的有效位置。没问题-StreetviewService可以解救!

生成随机纬度/经度,然后使用StreetviewService检查该位置是否有有效的Panorama。如果没有,请尝试其他位置。

值得注意的是,地球表面有很多没有街景数据,因此您可能希望在较小的区域内选择随机数-例如而不是冒险一次又一次地登陆海洋。

function TryRandomLocation(callback) {
  var lat = (Math.random() * 90) - 90;
  var lng = (Math.random() * 180) - 180;
  var sv = new google.maps.StreetViewService();

  // Try to find a panorama within 50 metres
  sv.getPanorama({
      location: new google.maps.LatLng(lat, lng),
      radius: 50
  }, callback);
}

function HandleCallback(data, status) {
    if (status == 'OK') {
      // Call your code to display the panorama here.
    } else {
      // Nothing here! Let's try another location.
      TryRandomLocation(HandleCallback);
    }
}

window.onload = function() {
  TryRandomPanorama(HandleCallback);
}

09-28 00:30