如何读取本地谷歌地图数据

How to read local Google Maps data?

本文关键字:谷歌地图 数据 读取 何读取      更新时间:2023-09-26

当我在谷歌地图上拖动和缩放,或使用谷歌地图制作器中的"浏览"功能时,我假设只有基本的地图数据,如建筑多边形坐标和交通/餐厅等图标位置+悬停数据,通过互联网发送到我的电脑。(这与数据密集型场景形成了鲜明对比,在这种场景中,我的鼠标坐标不断通过互联网发送到服务器,而这些服务器不断相应地发回新图像。)

[1] 这些地图数据存储在哪里
[2] 如何访问它们?


编辑
根据Lulyon的建议,我打开了Firefox的Firebug。谷歌地图似乎是以图像的形式出现的,而不是以动态/分层对象的形式出现。当您将鼠标悬停在显著对象上时,浏览器会发送一个回调请求,如:
GET https://mt3.google.com/mapslt/ft?lyrs=gw%3Adirect%3AGFwQAlABWgZsbXE6Kip1wBWuQHoFZjphbnk%7Cgid%3AXTlZKwxnPFg6qxnrb95r6g&x=84590&y=203485&z=19&hl=en&xc=1%2C17452890%2C3%2C7&callback=_xdc_._ihjf8sfqe

按F12,检查浏览器显示的所有资源。您可以在资源选项卡中找到所有图像链接。

[1]映射数据在服务器端覆盖,然后作为图像发送到客户端。例如:

GET https://mt3.google.com/mapslt?lyrs=gw:direct:GFwQAlABWgZsbXE6Kip1wBWuQHoFZjphbnk|gid:XTlZKwxnPFg6qxnrb95r6g&x=5283&y=12716&z=15&hl=en

mt3服务器
mapslt
lyrs=gw
direct:...|gid:...大概指定了在服务器端用地标和红色建筑多边形覆盖图像后的图像ID
x=[0, 2^z - 1] y=[0, 2^z - 1]指定平铺坐标
z=[0,21]指定缩放级别(请注意,平铺的数量取决于缩放级别)
hl:en英语

[2] 必须获取校准图像,其中像素可以映射到lat/long。这可以通过指定xyz坐标(lyrs=m@['d]+??):来执行

http://mt0.google.com/vt/lyrs=m@129&hl=en&x=23&y=13&z=5

或者使用静态映射API。最后,可以处理所需对象的图像(例如,通过颜色阈值),然后通过墨卡托投影确定像素的纬度/经度。


请填写???如果你知道的话