Google 静态街景 API 与 Google 地图嵌入 API 中的不同默认视口

Different default viewports in Google Static Streetview API vs Google Maps Embed API

我正在寻找一种在 Google 地图街景嵌入中获取默认标题的方法,该嵌入具有与静态街景相同的 accuracy/heading。

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

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

如您所见,没有指定航向参数,因此 API 根据 API docs.

中指定的给定 LatLng 确定可能的最佳航向

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

Google 地图街景嵌入有一个非常不同的结果。导致创建嵌入的步骤 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 在所选标题方面差异如此之大。

经过进一步挖掘,我找到了答案 。解决方案是首先使用 Directions API 导航到给定的位置,这会将航向设置为朝向该位置。然后使用 StreetviewService 的 getPanoramaByLocation 方法确定正确的航向。

因此,最好的方法不是在服务器端构建嵌入代码,而是使用 Google 地图 API.

在前端创建街景视图