Google maps 使用半径大于50米的getPanoramaByLocation获取最近街景的最佳方法
我知道半径小于50米的getPanoramaByLocation将返回最近的街景全景。但是,对于某些位置,并不总是有街景。所以我现在做的是这样的:Google maps 使用半径大于50米的getPanoramaByLocation获取最近街景的最佳方法,google-maps,google-maps-api-3,google-street-view,Google Maps,Google Maps Api 3,Google Street View,我知道半径小于50米的getPanoramaByLocation将返回最近的街景全景。但是,对于某些位置,并不总是有街景。所以我现在做的是这样的: function insider_function(locations) { var place = new google.maps.LatLng(locations[local_idx].lat,locations[local_idx].lng); sv.getPanoramaByLocation(place, 50, funct
function insider_function(locations) {
var place = new google.maps.LatLng(locations[local_idx].lat,locations[local_idx].lng);
sv.getPanoramaByLocation(place, 50, function(data, status) {
if (status == google.maps.StreetViewStatus.OK) {
insider_function_2(locations[local_idx], data);
} else {
sv.getPanoramaByLocation(place, 100, function(data, status) {
if (status == google.maps.StreetViewStatus.OK) {
insider_function_2(locations[local_idx], data);
} else {
alert('Internal error: ' + status + locations[local_idx]);
}
}
}
如果radius 50没有返回任何结果,我将调用radius 100。但我仍然得到一些地址的零结果警报。如果我通过一个非常大的数字,比如9999,我可能会在其他大多数位置看到一个非常远的街景
那么,获取半径大于50的最近街景全景的最佳方法是什么呢
我不知道谷歌地图是如何做到这一点的。例如,如果我使用坐标为37.4513333,-122.1214268的“加利福尼亚州帕洛阿尔托耿路2300号”。半径为100的getPanoramaByLocation将返回零结果,但在以下位置有街景:
如果使用radius 200进行此操作,它将显示街景,您可以查看此
jsiddle链接
:
因为半径为50的地址周围没有街景数据。但是如果你提供一个更大的半径,它将显示一个街景
从您提供的谷歌地图链接()中,它不会显示“加利福尼亚州帕洛市阿尔托市耿路2300号”的街景,而是显示距离“耿路2300号”约200半径的E Bayshore路的街景
在您的情况下,如果谷歌地图没有返回任何街景数据,您可能只需要创建另一个半径更大的函数。这方面的谷歌工程师解释了这个问题。下面是从该线程获得的两个选项
所以我必须为给定位置多次调用sv.getPanoramaByLocation才能获得封闭的街景?这将延迟网站完成加载。或者你可以使用更大的半径。