我正在使用Google Maps API for JavaScript。 如何生成有效的随机街景坐标? 是否有任何API默认方法或我必须编写自己的方法,我该怎么做?
答案 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);
}