简单的地图投影

时间:2010-12-12 23:10:33

标签: java map mapping gis map-projections

我有一张400x400的地图,近似代表250x250km的区域,我希望以Lat / Lon的形式投射GPS坐标。

考虑到精度不是很重要(一些km的误差是可以容忍的),有没有简单的公式或算法来进行投影并转换为像素坐标?如果有,我可以期待什么错误? 或者我真的错了,我需要的精确度并不容易?

注意:

  • 我对PROJ.4很感兴趣,但我更喜欢不使用任何外部库,因为程序必须在小型设备上运行
  • 我在地图上没有任何校准数据,但我可以使用在线地图自行校准。
  • here我记录了一点,我知道如何将纬度/经度转换为x / y / z坐标。但我不知道如何拨打Z

2 个答案:

答案 0 :(得分:4)

通常,这是使用transformation matrix并使用Mercarator projection完成的。

这是start的好地方。

虽然它不是java,但是有一个名为OpenHeatMap的开源项目,它在源代码中执行此操作。这可能是个好看的地方(特别是mapLinder / src / maprender.mxml中的setLatLonViewingArea,setLatLonToXYMatrix,mercatorLatitudeToLatitude)。

希望这有帮助!

答案 1 :(得分:2)

地理信息系统的人可能会因此而嘲笑我,但假设你不是一个高纬度,你可以找出地图对角线的纬度/经度来获得边界框,选择一个角作为你的起源,取一下你的GPS坐标和原点之间的差值,然后通过简单的乘法将其缩放到像素,然后绘制点。

我过去曾经使用过这个用于我正在玩的地图程序,而我正处于第39个并行状态。如果它不必是准确的,并且不要太靠近杆(虽然,对于250平方公里,你必须接近极点才能发生严重错误),这将是最快的,并且最容易的。