谷歌街景URL

58

您好,我有一处房产的地址,我的应用程序可以启动浏览器转到http://maps.google.com?q=searchStringHere。如果找到匹配项,它会直接跳转到那里。是否有任何东西可以添加到URL中,使其切换到街景而无需准确的坐标?我不想编写任何JavaScript或Flash代码。

5个回答

153

构建谷歌街景URL

基本的谷歌地图URLhttp://maps.google.com/maps?q=

q = 查询 - 传递到此参数的任何内容都被视为在maps.google.com页面上键入的内容。

显示GPS坐标位置的基本URL

http://maps.google.com/maps?q=31.33519,-89.28720

http://maps.google.com/maps?q=&layer=c

layer=启用覆盖层。当前选项为“t”交通,“c”街景。添加(例如layer=tc)以同时启用。

http://maps.google.com/maps?q=&layer=c&cbll=

cbll= 街景的纬度、经度

http://maps.google.com/maps?q=&layer=c&cbll=31.33519,-89.28720

http://maps.google.com/maps?q=&layer=c&cbll=31.335198,-89.287204&cbp=

cbp= 接受5个参数的 Street View 窗口:

  1. Street View/地图排列,11=上半部分是 Street View,下半部分是地图;12=大部分是 Street View,带有角落地图

  2. 旋转角度/方位角(以度为单位)

  3. 倾斜角度,-90(正上方)到 90(正下方)

  4. 缩放级别,0-2

  5. Pitch(以度为单位),-90(正上方)到 90(正下方),默认值为 5

下面这个是:(11) 上半部分是 Street View,下半部分是地图,(0) 面向北方,(0) 正前方,(0) 正常缩放,(0) 倾斜度为 0

此代码可以直接使用,只需更改坐标和面向的方向(11 后面的 0): http://maps.google.com/maps?q=&layer=c&cbll=31.335198,-89.287204&cbp=11,0,0,0,0

获取更多 Google 街景代码解释


1
使用参数layer=c&cbll=对我来说至少仍然有效。 - Bloopy
请查看我在2018年10月发布的最新版Google街景获取API(Get-API)答案。(上述补充被拒绝。) - Datz
2019年8月,使用经纬度和图层“c”从URL获取街景在iOS和macOS上运行正常,但在Android上无法正常工作?Android已删除查询参数。 - Ed of the Mountain
这并没有回答原问题:“如何在没有确切坐标的情况下切换到街景视图”。 - hakatashi
有趣的是,默认缩放为0时,在浏览器中加载URL仍然可以稍微缩小一点。 - Theo F

25

很遗憾,基于地址,无法给出简单的答案。

首先,这里有谷歌地图网站参数列表,你可以以此为起点。

容易的部分是,您需要选择街景图层 "&layer=c"。

然而,在该图层中显示任何内容之前,您需要指定视图的位置。您可以在cbll中设置经纬度以及带有一些选项的cbp中的相机角度。

要从地址获取纬度和经度,您需要使用地理编码服务,例如Google Maps API

但是,这只会让您获得一个接近地址的街景视图。除了知道街景所在位置外,您还需要知道将相机指向哪个角度 - 这对于每个地址都不同,取决于街景相机拍摄的最近点在哪里,因此不容易自动完成(根据我所知道的任何信息...)


谢谢,那个网站正是我在寻找的。问题在于街景需要精确坐标。解决方法是首先调用输出为 kml 的函数,它会返回一个简单的 xml,然后再使用 cbll= ... 调用它。 - Tim Matthews
很高兴这对你有用。正如我所提到的,您仍然需要获取cbp变量的角度,但至少您将得到正确的位置。最少"&cbp=12,,,,"可以让您看到一些东西。 - Stobor
5
参数列表链接已损坏。 - knownasilya
@Knownasilya 谢谢 - 有人似乎已经在 http://asnsblues.blogspot.com.au/2011/11/google-maps-query-string-parameters.html 上镜像了它,但我会尝试找到权威来源... - Stobor
在这种情况下,像http://imstreetview.com/和https://www.instantstreetview.com/这样的网站是如何工作的? - Bavan
@Bavan 不错的问题,有趣的网站。我在2008年给出的答案是正确的 - 他们可能已经在地理编码API或谷歌地图API中添加了该信息。我会抽空检查一下,看看能否弄清楚。 - Stobor

14

更新于 2019 年 07 月:

截止到现在,2018年10月的解决方案仍然适用于我,但我已经找到了一种官方文档记录的构建街景URL的方法:

构建街景URL

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

参数

  • map_action=pano(必填):指定要显示的视图类型。地图和街景共享同一端点。为确保显示全景图像,必须将动作指定为pano。

还需要以下URL参数之一:

  • viewpoint:查看器显示最接近视点位置拍摄的全景照片,指定为逗号分隔的纬度/经度坐标(例如46.414382, 10.013988)。由于街景图像定期刷新,每次可能会从稍微不同的位置拍摄照片,因此当图像更新时,您的位置可能会捕捉到不同的全景图像。

  • pano: 图片特定全景ID。 如果您指定了pano,您也可以指定一个视点。 当Google Maps无法找到全景ID时,才会使用视点。如果指定了pano但未找到,并且未指定视点,则不显示全景图像。而是以默认模式打开Google Maps,显示以用户当前位置为中心的地图。

  • 以下URL参数是可选的:

    • heading: 表示相机顺时针方向与北极的角度。 允许使用的值为-180到360度。如果省略,则根据查询的视点(如果已指定)和图像的实际位置选择默认的朝向。

    • pitch: 指定相机上下的角度。俯仰角以度数从-90到90度指定。正值将使相机向上倾斜,而负值将使相机向下倾斜。默认俯仰角0基于捕捉图像时相机的位置设置。因此,俯仰角为0通常(但并非总是)是水平的。例如,拍摄在山上的图像可能会展示不是水平的默认俯仰角。

  • 视野(fov):决定图像的水平视野。视野用度数表示,范围为10-100。默认值为90。在处理固定大小的视口时,视野被认为是缩放级别,较小的数字表示更高级别的缩放。

  • 示例1:仅使用视点指定位置。

    https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=48.857832,2.295226&heading=-45&pitch=38&fov=80

    来源:https://developers.google.com/maps/documentation/urls/guide(滚动到底部查看街景URL)


    13

    2018年10月更新

    GET API(请参见Haygood的答案)似乎已过时,但有些调用仍然有效。

    基础URL:

    更改为http://www.google.com/maps(map.google.com/maps仍然可用但会重定向)

    参数:

    • q:被忽略,可以跳过 有关更多Google Street View代码解释

    • layer:该参数必须设置为ct不再被支持并会导致错误)

    • cbll:纬度和经度(未更改)
    • cbp:只有参数2(旋转角度)和5(俯仰)仍然受支持

      1. 被忽略,可以为0或空字符串

      2. 旋转角度/方位(以度为单位)

      3. 被忽略,可以为0或空字符串

      4. 被忽略,可以为0或空字符串

      5. 俯仰(以度为单位)-90(竖直向上)到90(竖直向下)

    更新的示例:http://www.google.com/maps?layer=c&cbll=31.335198,-89.287204

    或者http://www.google.com/maps?layer=c&cbll=31.335198,-89.287204&cbp=,30,,,20,旋转30度和俯仰20度。


    5

    您可以通过点击街景视图顶部的链接按钮来获取数值。


    这个不再起作用了。它会给你一个链接,但没有参数,比如goo.gl/maps/bCB8w3xUy4A2。 - Datz

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接