简介
利用地图网址,您可以构建一个跨平台通用网址,以启动 Google 地图、执行搜索、获取路线和导航,以及显示地图视图和全景图片。无论使用哪个平台,网址语法都是相同的。
您无需 Google API 密钥即可使用 Google 地图网址。
通用跨平台语法
作为 Android 应用、iOS 应用或网站的开发者,您可以构建一个通用网址,无论打开地图时所用的平台如何,该网址都会打开 Google 地图并执行请求的操作。
- 在 Android 设备上:
- 如果已安装并启用 Android 版 Google 地图应用,该网址会在 Google 地图应用中启动 Google 地图并执行请求的操作。
- 如果 Google 地图应用未安装或已停用,该网址会在浏览器中启动 Google 地图并执行请求的操作。
- 在 iOS 设备上:
- 如果已安装 iOS 版 Google 地图应用,该网址会在 Google 地图应用中启动 Google 地图,并执行请求的操作。
- 如果未安装 Google 地图应用,该网址会在浏览器中启动 Google 地图并执行请求的操作。
- 在任何其他设备上,该网址都会在浏览器中启动 Google 地图并执行请求的操作。
建议您使用跨平台网址从应用或网站启动 Google 地图,因为无论使用哪个平台,您都可以通过这些通用网址更广泛地处理地图请求。对于可能仅在移动平台上可用的功能(例如精细导航),您可能更倾向于使用适用于 Android 或 iOS 的平台专用选项。请参阅以下文档:
- 适用于 Android 的 Google 地图 intent - 专门用于启动 Android 版 Google 地图应用
- 适用于 iOS 的 Google 地图网址架构 - 专门用于启动 iOS 版 Google 地图应用
启动 Google 地图并执行特定操作
如需启动 Google 地图并视需要执行某项受支持的功能,请根据请求的操作使用以下某种形式的网址架构:
- 搜索
- 启动 Google 地图,显示特定地点的图钉,或执行常规搜索并启动地图来显示结果:
https://www.google.com/maps/search/?api=1¶meters
- 路线
- 查询路线并启动 Google 地图以显示结果:
https://www.google.com/maps/dir/?api=1¶meters
- 显示地图
- 启动 Google 地图,不显示标记或路线:
https://www.google.com/maps/@?api=1&map_action=map¶meters
- 显示街景全景图片
- 启动交互式全景图片:
https://www.google.com/maps/@?api=1&map_action=pano¶meters
重要提示:参数 api=1
用于标识此网址适用的 Google 地图网址版本。每个请求中都必须包含此参数。唯一的有效值为 1。如果网址中不存在 api=1
,系统会忽略所有参数,并在浏览器或 Google 地图移动应用中启动默认的 Google 地图应用(具体取决于所使用的平台,例如 https://www.google.com/maps)。
构建有效网址
您必须正确编码网址。
例如,某些参数使用竖线字符 (|
) 作为分隔符,您必须在最终到达网址中将其编码为 %7C
。其他参数使用逗号分隔的值,例如经纬度坐标或城市、州。您必须将英文逗号编码为 %2C
。使用 %20
对空格进行编码,或将其替换为加号 (+
)。
此外,每个请求的网址长度上限为 2,048 个字符。构建网址时,请注意此限制。
地图操作次数
可用的地图操作包括:搜索、路线查询、显示地图和显示街景全景图片。您可以在请求网址中指定操作,以及必需和可选参数。与网址的标准一样,您可以使用“与”符号 (&
) 分隔参数。对于每个操作,搜索参数部分会列出参数及其可能的值。
搜索
搜索操作会显示对可见地图区域进行搜索的结果。搜索特定地点时,生成的地图会在指定位置放置图钉,并显示可用地点详情。
构建搜索网址
https://www.google.com/maps/search/?api=1¶meters
参数
query
(必需):定义要在地图上突出显示的地点。所有搜索请求都必须包含此查询参数。query_place_id
(可选):地点 ID 是用于唯一标识地点的文本标识符。对于search
操作,您必须指定query
,但也可以指定query_place_id
。如果您同时指定这两个参数,则只有在 Google 地图找不到地点 ID 时才会使用query
。如果您尝试明确关联到特定的场所,地点 ID 是确保您关联到正确地点的最佳方式。此外,建议您在使用纬度/经度坐标查询特定地理位置时提交query_place_id
。
搜索示例
地理位置搜索
在位置搜索中,您可以使用地点名称、地址或以英文逗号分隔的经纬度坐标搜索特定位置,而生成的地图会在该位置显示图钉。以下三个示例展示了使用不同地点值搜索同一地点的情况。
示例 1:搜索地名“Lumen Field”会显示以下地图:
https://www.google.com/maps/search/?api=1&query=lumen+field
示例 2:仅使用纬度/经度坐标搜索 Lumen Field 会得到以下地图。请注意,地图上有图钉,但地图或侧边栏中未提供其他地点信息:
https://www.google.com/maps/search/?api=1&query=47.5951518%2C-122.3316393
示例 3:使用纬度/经度坐标和地点 ID 搜索 Lumen Field 会得到以下地图:
示例 4:搜索地点名称“星巴克”会显示以下地图:
https://www.google.com/maps/search/?api=1&query=starbucks
示例 5:使用地点名称和地点 ID 搜索特定星巴克,会得到以下地图:
https://www.google.com/maps/search/?api=1&query=starbucks&query_place_id=ChIJsU30zM1qkFQRbnOm1_LBoG0
如果您的目标是显示特定地点的详细信息,请使用以下推荐格式之一构建搜索网址:
query=PLACE_NAME,ADDRESS
query=PLACE_NAME&query_place_id=PLACE_ID
如需以编程方式检索地点 ID,您可以使用 Places API:文本搜索(仅返回 ID) 功能。 这是获取地点 ID 的免费方法。详细了解地点 ID 和 Place API(新版)请求。
当用户点击或点按地图上的地图注点时,也可以检索地点 ID。详细了解可点击的地图注点图标 (JavaScript、Android、iOS)
分类搜索
在分类搜索中,您传递一个常规搜索字词,Google 地图会尝试在您指定的地点附近查找符合您条件的商家信息。
如果未指定位置,Google 地图会尝试查找您当前位置附近的商家信息。如果您想为分类搜索提供地理位置,请在一般搜索字符串(例如 pizza+seattle+wa
)中添加地理位置。
在本示例中,搜索华盛顿州西雅图的披萨餐厅会得到以下地图:
https://www.google.com/maps/search/?api=1&query=pizza+seattle+wa
路线
“路线”操作会显示地图上两个或多个指定地点之间的路径,以及距离和行程时间。
构建路线网址
https://www.google.com/maps/dir/?api=1¶meters
参数
origin
:定义用于显示路线的起始点。默认为最相关的起始位置,例如设备位置信息(如果可用)。如果没有,生成的地图可能会提供一个空白表单,以便用户输入起点。此值可以是地点名称、地址,也可以是逗号分隔的纬度/经度坐标。字符串应进行网址编码,因此“City Hall, New York, NY”等地址应转换为City+Hall%2C+New+York%2C+NY
。注意:除非您在网址中指定了
origin_place_id
,否则此参数为可选参数。如果您选择指定origin_place_id
,则还必须在网址中添加origin
。origin_place_id
(可选):地点 ID 是用于唯一标识地点的文本标识符。如果您尝试明确指定某个商家,使用地点 ID 是确保您关联到正确地点的最佳方式。使用此参数的网址还必须包含origin
。destination
:定义方向的终点。如果没有,生成的地图可能会提供一个空白表单,以便用户输入目的地。此值可以是地点名称、地址,也可以是逗号分隔的纬度/经度坐标。字符串应进行网址编码,因此“City Hall, New York, NY”等地址应转换为City+Hall%2C+New+York%2C+NY
。注意:除非您在网址中指定了
destination_place_id
,否则此参数为可选参数。如果您选择指定destination_place_id
,则还必须在网址中添加destination
。destination_place_id
(可选):地点 ID 是用于唯一标识地点的文本标识符。如果您尝试明确指定某个商家,使用地点 ID 是确保您关联到正确地点的最佳方式。使用此参数的网址还必须包含destination
。travelmode
(可选):定义行进方式。选项列表如下:driving
walking
:优先使用步道和人行道(如有)。bicycling
:通过自行车道(如有)的路线。“骑自行车”是指人力驱动的交通方式。two-wheeler
:优先使用双轮车道(如果有)。 “双轮机动车”是指双轮机动车辆,例如摩托车。如需了解详情,请参阅两轮车保修范围。transit
dir_action=navigate
(可选):根据起点是否可用,启动精细导航或指定目的地的路线预览。如果用户指定的起点距离用户的当前位置较远,或者当前设备位置不可用,地图会启动路线预览。 如果用户未指定起点(在这种情况下,起点默认为当前设备位置),或者起点靠近用户的当前位置,则地图会启动精细导航。请注意,导航功能并非适用于所有 Google 地图产品和/或所有目的地;在这种情况下,系统会忽略此参数。waypoints
:指定一个或多个中间地点,以便在origin
和destination
之间规划路线。您可以使用竖线字符 (|
) 分隔地点(例如Berlin,Germany|Paris,France
),从而指定多个航点。允许的航点数量因打开链接的平台而异,移动浏览器最多支持 3 个航点,其他平台最多支持 9 个航点。 路点在地图上的显示顺序与其在网址中的列出顺序相同。 每个航点可以是地点名称、地址或以英文逗号分隔的纬度/经度坐标。字符串应进行 网址编码,因此“Berlin,Germany|Paris,France”等航点应转换为Berlin%2CGermany%7CParis%2CFrance
。注意:
- 并非所有 Google 地图产品都支持航点;在这种情况下,系统会忽略此参数。
- 除非您在网址中指定了
waypoint_place_ids
,否则此参数是可选的。如果您选择指定waypoint_place_ids
,则还必须在网址中添加waypoints
。
waypoint_place_ids
(可选):地点 ID 是用于唯一标识地点的文本标识符。借助Waypoint_place_ids
,您可以提供地点 ID 列表,以匹配waypoints
列表。 地点 ID 应按与航点相同的顺序列出,并使用竖线字符“|
”( 经过网址编码为%7C
)进行分隔。如果您尝试明确指定某些地点,地点 ID 是确保您链接到正确地点的最佳保证。 使用此参数的网址还必须包含waypoints
。avoid
(可选):设置路线应尽量避开的地图项。它可以设置为以下一个或多个选项,以英文逗号字符“,
”( 网址编码为%2C
)分隔:ferries
highways
tolls
travelmode
,Google 地图会显示与指定路线和/或用户偏好设置最相关的一个或多个模式。
路线示例
以下网址会以路线模式启动地图,并提供一个表单,供用户输入起点和目的地。
https://www.google.com/maps/dir/?api=1
以下示例会启动一个地图,其中显示了从华盛顿州西雅图的太空针塔到派克市场之间的骑行路线。
以下示例会启动一个地图,其中显示了从 Google 孟买到孟买国际机场的摩托车路线。
以下示例会启动一个地图,其中包含从 Google 澳大利亚悉尼办事处到维多利亚女王大厦的步行路线。
显示地图
地图操作会返回没有标记或路线的地图。
构建地图网址
https://www.google.com/maps/@?api=1&map_action=map¶meters
参数
map_action=map
(必需):指定要显示的地图视图类型。Google 地图和 Google 街景使用相同的端点。为确保显示地图,必须将map_action
指定为map
。center
(可选):定义地图窗口的中心,并接受以英文逗号分隔的值(例如-33.8569,151.2152
)作为纬度/经度坐标。zoom
(可选):设置地图的初始缩放级别。 可接受的值为整数,范围介于 0(整个世界)到 21(单个建筑物)之间。上限可能会因所选地点提供的地图数据而异。默认值为 15。basemap
(可选):定义要显示的地图类型。 值可以是roadmap
(默认值)、satellite
或terrain
。layer
(可选):定义要在地图上显示的额外图层(如果有)。值可以是以下任一值:none
(默认值)、transit
、traffic
或bicycling
。
地图示例
此示例网址会启动以用户当前位置为中心的默认 Google 地图。
https://www.google.com/maps/@?api=1&map_action=map
以下示例显示了以澳大利亚新南威尔士州 Katoomba(位于 -33.712206,150.311941
)为中心的地图,并设置了可选的 zoom
和 basemap
参数。
显示街景全景图片
借助全景图片操作,您可以启动查看器,以交互式全景图片的形式显示街景图片。每张街景全景图片都提供以单个位置为中心的 360 度全景视图。 图片包含 360 度的水平视图(完整环绕一周)和 180 度垂直视图(从直上至直下)。全景照片操作会启动一个查看器,以镜头为中心将生成的全景照片渲染为一个球面。您可以操纵摄像头来控制摄像头的缩放级别和朝向。
Google 街景提供整个 覆盖区域内以指定地点为中心的全景视图。您还可以查看用户贡献的 360 度全景照片和街景特别集合。
构建街景网址
https://www.google.com/maps/@?api=1&map_action=pano¶meters
参数
map_action=pano
(必需):指定要显示的视图类型。Google 地图和 Google 街景使用相同的端点。为确保显示全景图,必须将action
指定为pano
。
此外,还必须提供以下任一网址参数:
viewpoint
:查看器会显示距离viewpoint
位置最近拍摄的全景图,该位置以逗号分隔的纬度/经度坐标指定(例如 46.414382,10.013988)。由于街景图像会定期刷新,并且每次拍摄照片的位置可能略有不同,因此当图像更新时,您的位置可能会跳转到其他全景图片。pano
:要显示的图片的特定全景图 ID。如果您指定了pano
,则还可以指定viewpoint
。只有在 Google 地图找不到全景图 ID 时,才会使用viewpoint
。如果指定了pano
但未找到,并且未指定viewpoint
,则系统不会显示任何全景图片。而是会以默认模式打开 Google 地图,显示以用户当前位置为中心的地图。
以下网址参数为可选参数:
heading
:指示相机的罗盘方向,以相对于正北方的度数(顺时针)表示。可接受的值介于 -180 到 360 度之间。如果省略,系统会根据查询的视点(如果已指定)和图片的实际位置选择默认标题。pitch
:指定相机的向上或向下倾斜角度。 倾斜度以度为单位,范围为 -90 到 90。正值表示相机向上倾斜,负值表示相机向下倾斜。默认的俯仰角为 0,基于拍摄图片时相机的位置设置。因此,倾斜度为 0 通常(但并非总是)表示水平。例如,在小山上拍摄的图片的默认倾斜度多半并非水平。fov
:确定图片的水平视野范围。 视野范围以度为单位,范围为 10-100。默认值为 90。 处理固定大小的视口时,视野范围被视为缩放级别,数字越小表示缩放级别越高。
街景示例
前两个示例显示了埃菲尔铁塔的全景图。示例 1 仅使用 viewpoint
作为位置,并设置可选的 heading
、pitch
和 fov
参数。为了进行比较,第二个示例使用 pano
ID 以及第一个示例中设置的相同参数。第三个示例显示了室内全景图片。
示例 1:仅使用 viewpoint
指定位置。
示例 2:使用 pano
ID 和 viewpoint
位置。
pano
ID 的优先级高于 viewpoint
。
在此示例中,系统找到了全景图 ID,因此会忽略 viewpoint
。请注意,与仅使用 viewpoint
找到的图片相比,为 pano
ID 显示的全景图片略有不同,并且更新。
示例 3:显示使用全景 ID 指定的英国伦敦 Sarastro 餐厅内部的全景图。
https://www.google.com/maps/@?api=1&map_action=pano&pano=4U-oRQCNsC6u7r8gp02sLA
查找全景照片 ID
如需查找特定全景图片的 ID,您可以使用多种方法。
- 对于 JavaScript,请使用 StreetViewPanorama 类。
- 对于 Android,请使用公共类 StreetViewPanoramaLocation。
- 对于 iOS,请使用 GMSPanorama 类。
- 您还可以 使用 Google Street View Image API 发出元数据请求。 图片元数据请求可提供有关街景全景图片的数据,包括全景图片 ID。
更多示例
使用航点的路线示例
以下路线示例会启动 Google 地图,并显示从法国巴黎到法国瑟堡的行车路线,路线会经过以下路点:
国家/地区,城市 | 地名 | 地点 ID |
---|---|---|
1. 法国凡尔赛 | 凡尔赛宫 | ChIJdUyx15R95kcRj85ZX8H8OAU |
2. 法国,沙特尔 | 沙特尔大教堂 | ChIJKzGHdEgM5EcR_OBTT3nQoEA |
3. 法国勒芒 | 勒芒圣朱利安大教堂 | ChIJG2LvQNCI4kcRKXNoAsPi1Mc |
4. 法国卡昂 | 卡昂城堡 | ChIJ06tnGbxCCkgRsfNjEQMwUsc |
在示例网址中,我们以不同的方式定义了路点,以便您比较生成的地图上路点显示方式的差异。
示例 1:将航点定义为城市、国家/地区:
示例 2:将航点定义为特定地名:
示例 3:将路点定义为城市、国家/地区,并为每个路点中的特定酒店提供 waypoint_place_ids
:
示例 4:将航点定义为城市、国家/地区,但与前面的示例相比,航点的列出顺序有所不同。演示地图会按网址中列出的顺序显示航点。
地图示例
显示包含指定 basemap
(卫星)和 layer
(公交)的地图。
街景示例
使用 FIFE 图片键作为 pano
ID 显示街景全景图片。请注意,pano
ID 前面带有 F:。
使用 UTM 参数改进 Google 地图网址
为了帮助 Google 更好地了解开发者如何集成 Google 地图网址,并确保最佳效果,我们建议您在构建网址时添加 UTM 跟踪参数。通过添加 utm_source
和 utm_campaign
参数,您可以提供有价值的数据,以便我们分析使用情况并改进 Google 地图网址产品。
对于 utm_source
参数,请使用应用的名称。utm_campaign
参数应反映用户的预期操作,例如“location_sharing”“place_details_search”或“directions_request”。
例如,包含 UTM 参数的网址可能如下所示:
https://www.google.com/maps/search/?api=1&query=Sydney+Opera+House&query_place_id=ChIJ3S-JXmauEmsRUcIaWtf4MzE&utm_source=YOUR_APP_NAME&utm_campaign=place_details_search