proj.net简单试用

昨晚博士师兄从noaa上下了一份岸线数据,经纬度的,说要转个坐标。我本来想在arcgis里弄弄就好了,但他需要的只是文本(搞数学的人心中只有matlab)。arcgis里面的操作对象都是geometry,转来转去太繁琐。而且在10.1里面也找不到投影文件了,看官方说的是不再提供了(这是倒退还是进步啊!),当然你在软件里面还是能选择的。

好吧,那只能看看开源的东西了。osgeo的proj.4很有名,但我想尽快搞完,找个.net上的,就proj.net吧。后者也没有调用前者,后者是一个纯纯的.net实现么。

用起来很简单,输入一个double[],输出一个double[],批量的话就用List<double[]>。我是从WGS84转Mercator(不是Web Mercator),主要问题是这个完整的WKT比较难找了一点,SpatialReference上的文件并不全都是完整的。

代码也很简单,先从WKT中parse出坐标系,然后再用一个转换类去转换就行了,有空再去看源码深究下,因为地图投影真的很重要!

https://github.com/hmfly/proj.net_sample

用ArcMap来看下投影前后的效果,左边是WGS84,右边是Mercator。虽然纬度不是很高,但肉眼还是能看出点区别的。

分享到:
  1. 看到一对勾肩搭背,手拉着手的,还开开心心的走在大街上,对,没错,是两男孩!以前觉得没什么问题,我也曾这么干过,可是现在已经无法抑制龌龊的想法了 http://url.cn/XfB45g