Google Static Streetview API 与 Google Maps Embed API 中的不同默认



我正在寻找一种方法来获取Google地图街景嵌入中的默认标题,其准确性/航向与静态街景相同。

对于一个项目,我正在使用谷歌地图静态街景API来创建地址的快照/正面视图。我这样做的方法是首先使用Google GeoCode API找到地址LatLng,使用完整的地址(streetname+house_number+house_number_addition+zipcode+city(。然后,使用 latLng,我调用静态街景 API 来获取此位置的快照。

https://maps.googleapis.com/maps/api/streetview?size=900x600&location={$latLng}&key={$key}"

如您所见,没有指定标题参数,因此 API 根据给定的 LatLng 确定最佳可能标题,如 API 文档中指定的那样。

结果在99%的情况下都是正确的,其中房屋几乎完美地位于街景快照的中心。

谷歌地图街景嵌入有一个非常不同的结果。创建嵌入URL的步骤是相同的(根据完整地址查找latlng,并使用LatLng作为嵌入代码中的位置(

https://www.google.com/maps/embed/v1/streetview?key={$key}&location={$latLng}"

生成 iframe HTML

<iframe src='{https://www.google.com/maps/embed/v1/streetview?key={$key}&location={$latLng}"}' width='600' height='450' frameborder='0' style='border:0;' allowfullscreen='' aria-hidden='false' tabindex='0'></iframe>

在这种情况下,在许多情况下(不是全部(,航向或相机方向几乎与目标房屋相反。当然,这可以使用标题参数进行调整,但奇怪的是,两个街景 API 在选择的标题上差异如此之大。

经过一番挖掘,我在这里找到了答案。解决方案是首先使用方向 API 导航到给定位置,该位置设置面向该位置的标题。然后使用街景服务的getPanoramaByLocation方法来确定正确的标题。

因此,最好的方法似乎是使用 Google Maps API 在前端创建街景,而不是构建嵌入代码服务器端。

最新更新