0

相同的 URL 通过移动和桌面给出不同的结果。街景的特定 URL 格式在不同的设备上显示不同的结果。

这是 URL 格式的起始参考:Google street view URL

当我加载此网址时: http://maps.google.com/maps?q=&layer=c&cbll=40.741895, -73.989308

通过桌面在 chrome 中:我得到了海滩的街景

在 chrome 中通过 Android 移动设备:我得到了纽约街道的街景(正确响应)

谷歌似乎通过桌面呈现由用户制作的视图(照片),并通过移动呈现由谷歌制作的照片。

但在另一个网址: http://maps.google.com/maps?q=&layer=c&cbll= 32.0522032,34.7633459

通过桌面在 chrome 中:我得到了正确的街景,由谷歌制作

通过 Android 移动设备在 chrome 中:“未找到您的搜索结果”

我猜这个错误不会影响谷歌,因为他们在他们的服务中使用不同的入口点来查看街景......

我的目标是在 Android 应用程序的 web 视图中显示谷歌街景,我正在尝试为此获取正确的 URL 格式。有谁知道正确的格式是什么?

4

1 回答 1

1

谷歌官方支持和推荐的方式是使用谷歌地图网址。Google 地图 URL 允许创建可在桌面和移动设备上使用的通用跨平台 URL,并支持街景模式

全景操作可让您启动查看器以将街景图像显示为交互式全景图。每个街景全景图都可以从一个位置提供完整的 360 度视图。图像包含 360 度水平视图(完全环绕)和 180 度垂直视图(从直上到直下)。pano 动作会启动一个查看器,该查看器将生成的全景图呈现为一个球体,其中心有一个摄像头。您可以操纵相机来控制相机的缩放和方向。

您的示例可能会使用 Google 地图 URL 重写

https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=40.741895,-73.989308

然而,不幸的是,它给了我桌面上的海滩街景。我认为这是 Google 方面的数据问题,您可以使用Report a problem地图右下角的链接向 Google 报告问题。

同时,我可以建议以下解决方法。您可以使用Street View API 元数据服务来获取您感兴趣的点的全景 ID

例如https://maps.googleapis.com/maps/api/streetview/metadata?location=40.741895%2C-73.989308&source=outdoor&key=YOUR_API_KEY

请注意,此服务是免费的,不会消耗您的配额

街景静态 API 元数据请求可免费使用。请求元数据时不会消耗配额。

它还支持source允许过滤掉非谷歌全景图的参数。在上述示例中,我得到以下元数据响应

{
  "copyright":"© Google, Inc.",
  "date":"2017-11",
  "location":{
    "lat":40.7419078,
    "lng":-73.9893223
  },
  "pano_id":"qH-ml27SSSYEXUCTT2NrhQ",
  "status":"OK"
}  

所以,现在我可以使用将打开预期街景全景图的全景 ID 创建一个谷歌地图 URL

https://www.google.com/maps/@?api=1&map_action=pano&pano=qH-ml27SSSYEXUCTT2NrhQ

我希望这有帮助!

于 2019-01-07T16:03:15.853 回答