谷歌地图 URL 格式详解:逐一解读每种链接
简短回答
google.com/maps/ 后面的部分说明了链接类型:/place/ 包含名称和坐标,/search/ 包含搜索词,/@ 只有坐标,/dir/ 是一条路线。maps.app.goo.gl 短链接背后就是其中一种。它们都可以在下方转换为苹果地图链接,但单独的 cid 链接、place_id 链接和整个列表除外。
8 种链接类型
找到您的链接对应的格式。标签会告诉您快速转换如何处理它。
-
地点链接 ✓ 可转换
google.com/maps/place/
Eiffel+Tower/@48.8584,2.2945,17z- 地点名称
- 坐标
- 缩放
已打开地点的地址栏链接。名称和坐标都会保留。
-
短链接 ✓ 先解析
maps.app.goo.gl/Ab3xYz
- 短代码:隐藏了完整链接
在谷歌地图中点击“分享”得到的就是这种链接,goo.gl/maps 链接也一样。快速转换会先跟随重定向。
-
搜索链接 ✓ 搜索名称
google.com/maps/search/
Louvre+Museum/@48.8606,2.3376,15z- 搜索词
- 坐标
这是一次搜索,而非单个地点:搜索词会成为苹果地图的查询内容。带有
q=或api=1&query=的链接同理。 -
仅坐标 ✓ 可转换
google.com/maps/
@52.520008,13.404954,15z- 坐标
- 缩放
没有名称,只有地图上的一个位置。苹果地图会在同一位置打开。
-
路线链接 ✓ 取终点
google.com/maps/dir/
Louvre/Notre-Dame/Eiffel+Tower- 起点和途经点
- 终点
一条路线。只有终点会保留,路线本身不会。
-
cid 链接 需要名称
google.com/maps?cid=
10281119596374313554- 数字地点 ID:不含名称
这个数字不包含名称,因此单独的 cid 链接无法转换。如果链接同时附带地点名称,就可以转换。
-
地点 ID 链接 ✗ 无法直接转换
google.com/maps/place/?q=place_id:
ChIJN1t_tDeuEmsRUsoyG83frY4- 谷歌地点 ID
其中没有名称或坐标。请从谷歌地图分享该地点,再转换得到的链接。
-
列表或 My Maps 链接 文件转换器
google.com/maps/placelists/list/
Qm9vZ2xlTGlzdA- 列表 ID
这是整个列表,而非单个地点。请先导出,再使用文件转换器或应用。
开发者详细信息
快速转换生成的苹果地图链接
maps.apple.com/?q=Eiffel%20Tower&ll=48.8584,2.2945
- 名称
- 坐标
Apple 经典的 maps.apple.com 格式。如果谷歌链接中没有名称,它只包含 ll=lat,lng&z=17;如果没有坐标,则只包含 q=Name。它在 iPhone、iPad 和 Mac 上会打开地图应用,在其他设备上则打开网页地图。所有参数详见苹果地图 URL 方案指南。
提取坐标、名称和途经点的正则表达式
先解码 URL(decodeURIComponent),然后:
// @lat,lng (place, search, coords)
/@(-?\d+\.?\d*),(-?\d+\.?\d*)/
// in data=: !3d = lat, !4d = lng
/!3d(-?\d+\.?\d*)/
/!4d(-?\d+\.?\d*)/
// name or search words (+ = space)
/\/maps\/(?:place|search)\/([^/@]+)/
// q=, query= and daddr= parameters
new URL(link).searchParams.get('q')
路线:将 /maps/dir/ 之后的路径按 / 拆分,去掉以 @ 开头或包含 = 的片段,取最后一段,即为目的地。
短链接和包装链接
maps.app.goo.gl 或 goo.gl/maps 链接是一个重定向。请求该链接,跟随重定向到完整的 google.com/maps URL,再解析这个 URL。
从 Facebook、Instagram 或 Google 复制的链接,常常把真正的链接包装在重定向参数中(u=、q= 或 url=)。解析前请先解码。快速转换会替您完成这两步。
常见问题
哪种 URL 格式转换起来最可靠?
地点链接(/maps/place/Name/@lat,lng),因为它同时包含地点名称和坐标。纯坐标链接只给出位置,没有名称。短链接解析后即可使用,cid 链接需要同时附带地点名称,而 place_id 链接无法直接转换。
谷歌地图 URL 中的 cid 参数是什么?
它是某个谷歌地图地点条目的数字 ID,例如 google.com/maps?cid=10281119596374313554。它不包含名称或坐标,因此只有当链接同时附带地点名称时(例如 ?q=Name&cid=…),快速转换才能转换 cid 链接。
如何从谷歌地图 URL 中提取坐标?
找到 @ 后面用逗号隔开的两个数字,它们就是纬度和经度。在 google.com/maps/@48.8584,2.2945,17z 中,坐标是 48.8584, 2.2945,17z 是缩放级别。短链接在解析之前不会显示坐标,转换器会替您完成解析。