0

我正在尝试在 Google 地图上显示图像(图块)。它工作正常,除了图像没有很好地与谷歌地图对齐。

在生成图像之前,我首先使用 SphericalMercator 通过从纬度和经度转换为像素位置(示例 19)来计算图像大小的宽度、高度。如谷歌示例所示https://developers.google.com/maps/documentation/javascript/examples/map-coordinates

例如:

Left Corner  Lat,Lng = 23.635069377090115 ,58.09107364729487
Pixel projection using SphericalMercator for zoom 19 , x= 88766786 , y=58035976

bottom, right Lat,Lng = 23.598520856653636, 58.14957298218598
Pixel projection using SphericalMercator for zoom 19 , x= 88788596 , y=58050848

有一次,我得到了左上角和右下角的像素值。我计算了用作生成图像的宽度、高度的 x delta 和 y delta

例如:

x2-x1= 21810
y2-y1= 14872

我使用一个工具将AutoCAD平面图转换为具有上述图像宽度、高度的图像。

然后,我使用 imageMagic 将图像切割成图块:

convert -crop 256x256 test4.png tile%d.png

然后我显示这些图块。

显示了瓷砖,但没有很好地对齐。我错过了什么吗?

4

1 回答 1

1

如果您想了解球形墨卡托瓷砖背后的数学原理并自己剪切图像,请查看我在页面上准备的混搭和源代码:

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

它也可以在其他人重写的其他编程语言(PHP、C#等)中使用。

如果您只想解决任务 - 并拥有完美匹配的叠加层、优化的图块大小、不仅适用于 Google Maps API 的示例查看器,还有更多,只需从http://www.maptiler.com/下载 MapTiler 。

对于缺少地理参考的图像,您可以提供边界框(北、南、东、西坐标),也可以直观地识别地图上的要素,如本视频教程所示:http: //youtu.be/eJxdCe9CNYg

在此处输入图像描述

于 2014-10-18T08:17:16.390 回答