我正在使用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);
}