我正在使用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在其网址中需要三个可变参数x,y和z来提供图块。
其他坐标can be seen here。
我非常成功地逐个获取Google Tile(地图)(意味着设置不同的x,y和z值)。
现在来到现实世界的场景,我尝试开发一个WinForm(C#)应用程序来显示这些图块。我能够显示一个瓷砖。但我的问题是......
如何提供完整的地图集(拼接在一起的不同拼贴)? 我知道,我可以使用不同的参数向Google Tile Server提供多个调用,但我需要知道x,y和amp;的适当值是什么。 z在不同条件下与<
是否有任何计算,公式或映射将屏幕坐标链接到Google Tile Server坐标(表示x,y和z值)?
我必须在拖动和双击时提供平滑的缩放和平移..与Google提供的相同。
我的基本关注点是Google的x,y,z与我的屏幕坐标之间的关系。
任何帮助(或样品)都将受到高度赞赏。
答案 0 :(得分:2)
你想要做的事情的解释是复杂的,你必须在某种程度上弄清楚,因为事情并不是简单地自动组装(这在某种程度上是不幸的)。
尽管如此,我发现以下链接确实解决了我的无知问题,所以现在我可以更轻松地解决问题:
http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/
这将解释(使用一些示例公式)如何获得所需的转换。
答案 1 :(得分:1)
您需要使用墨卡托投影从纬度/经度到Google地图图块坐标(缩放,x,y)。有关示例,请参阅https://developers.google.com/maps/documentation/javascript/examples/map-coordinates。您首先需要将Lat / Lon转换为“世界点”,然后根据缩放级别,您可以转换为代表整个世界的整个虚拟地图图像上的像素。知道了瓷砖尺寸(256 x 256),然后您可以从像素坐标转换为瓷砖坐标。 将此逻辑反转为从平铺坐标到纬度/经度。
答案 2 :(得分:1)
如果您想从lat long转到tile坐标,bing map tile页面会为您提供所需的所有方程式。 (假设每个人都使用topleft origin和256x256大小的瓷砖)。
http://msdn.microsoft.com/en-us/library/bb259689.aspx
如果您需要使用不同大小的图块,则修改公式中的常量。