我有一张 400x400 的 map ,大约代表 250x250km 的区域,我想以 Lat/Lon 的形式投影 GPS 坐标。
考虑到精度不是很重要(几公里的误差是可以容忍的)有没有简单的公式或算法来进行投影并转换为像素坐标?如果有的话,我可以期待什么错误? 或者我真的错了,没有简单的方法来达到我需要的精度?
注意事项:
- 我阅读了有关 PROJ.4 的信息,但我更愿意不使用任何外部库,因为该程序必须在小型设备上运行
- 我在 map 上没有任何校准数据,但我可以使用在线 map 自行校准。
- 来自 here我记录了一点,我知道如何将纬度/经度转换为 x/y/z 坐标。但是我不知道怎么用Z拨号
最佳答案
通常,这是使用 transformation matrix 完成的并使用 Mercarator projection .
这里是start的好地方.
虽然不是java,但是有个开源项目叫OpenHeatMap它在其源代码中执行此操作。这可能是查看的好地方(特别是 maprender/src/maprender.mxml 中的 setLatLonViewingArea、setLatLonToXYMatrix、mercatorLatitudeToLatitude)。
希望这对您有所帮助!
关于java - 简单的 map 投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4424644/