1

我正在使用 Google Tile Server。我编写了一个 WCF 服务 (C#),它使用 http URL 从 Google 服务器获取图块:- http://mt1.google.com/vt/lyrs=m@129&hl=en&x=1&y=0&z=1&s=Galileo

如您所知,Google Tile 在其 URL 中需要三个可变参数 x、y 和 z 来提供一个 tile。

其他坐标可以在这里看到

我非常成功地一一获取 Google Tile(地图)(意味着放置不同的 x、y 和 z 值)。

现在来到现实世界的场景,我尝试开发一个 WinForm (C#) 应用程序来显示这些图块。我能够显示一对一的瓷砖。但我的问题是..

  1. 如何提供完整的地图集(不同的瓦片拼接在一起)? 我知道,我可以使用不同的参数向 Google Tile Server 提供多次调用,但我需要知道在不同条件下 x、y 和 z 的适当值以及与该值的连续关系

  2. 是否有任何计算、公式或映射将屏幕坐标链接到 Google Tile Server 坐标(表示 x、y 和 z 值)?

  3. 我必须在拖动和双击时提供平滑的缩放和平移 .. 与 Google 提供的一样。

  4. 我最关心的是谷歌的 x、y、z 和我的屏幕坐标之间的关系。

任何帮助(或样本)将不胜感激。

4

3 回答 3

2

你想要做什么的解释很复杂,你必须以某种方式弄清楚,因为事情不会简单地自动组装起来(这在某种程度上是不幸的)。

尽管如此,我发现以下链接从字面上解决了我的无知问题,所以现在我可以更容易地解决问题:

http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/

这将解释(通过一些示例公式)如何获得所需的转换。

于 2012-06-16T20:32:35.577 回答
1

如果您想从 lat long 转到平铺坐标,bing 地图平铺页面会为您提供所需的所有方程式。(假设每个人都使用左上角原点和 256x256 大小的图块)。

http://msdn.microsoft.com/en-us/library/bb259689.aspx

如果您需要使用不同大小的瓷砖,请修改方程式中的常数。

于 2014-10-06T22:56:56.743 回答
1

您需要使用墨卡托投影从纬度/经度转到 Google 地图图块坐标(缩放、x、y)。有关示例,请参见https://developers.google.com/maps/documentation/javascript/examples/map-coordinates 。您首先需要将 Lat / Lon 转换为“世界点”,然后根据缩放级别从那里转换为代表整个世界的整个虚拟地图图像上的像素。知道平铺大小 (256 x 256),然后您可以从像素转换为平铺坐标。反转此逻辑以从图块坐标转到纬度/经度。

于 2014-08-19T20:19:24.950 回答