1

当我在 Google 地图上拖动和缩放,或使用 Google mapmaker中的“浏览”功能时,我假设只有基本的地图数据,如构建多边形坐标和交通/餐厅/等图标位置 + 悬停数据正在通过互联网发送到我的电脑。(这与数据更密集的情况形成对比,在这种情况下,我的鼠标坐标不断地通过互联网发送到服务器,而这些服务器相应地不断发回新的图像。)

[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

4

2 回答 2

5

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

于 2013-07-09T05:59:52.227 回答
0

[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] 必须获取校准图像,其中像素可以映射到纬度/经度。这可以通过例如指定 xyz 坐标(lyrs=m@[\d]+ ???)来执行:

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

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


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

于 2013-07-22T05:33:09.503 回答