在JavaScript

时间:2017-06-10 17:19:04

标签: javascript jquery google-maps google-maps-api-3 maps

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

1 个答案:

答案 0 :(得分:1)

Streetview仅在某些地区提供,因此并非每个lat / lng对都是Streetview Panorama的有效位置。没问题 - 街景服务救援!

生成随机lat / lng,然后使用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);
}