为SharpMap增强测距功能
由于SharpMap本身LineString类的Length属性只能机械的根据组成LineString的每个shape point的坐标计算欧式距离,然后累加,并不能满足我目前要计算以米为单位精确距离的需求,所以Google了一下,找到了这篇blog:
其中提到了基于一个名为Gavaghan.Geodesy的类库来实现测距,于是顺藤摸瓜找到了原始的出处:
C# Geodesy Library for GPS - Vincenty’s Formulae
和
C#, GPS Receivers, and Geocaching: Vincenty’s Formula
Gavaghan.Geodesy类库代码的下载链接地址,这里是Java版本。关于类库的解释和用法,已经在上述后两个post里面介绍得很详细了,而有了这个,配合SharpMap一起使用的话应该很容易实现比较精确的距离测量。
写这个之前,Google了一下中文资源,发现没有一篇关于Gavaghan.Geodesy的中文资料;又Google了一下“SharpMap 测距”,结果找回了园子,看到了半支烟的SharpMap总结2,里面提到了测距功能,不知道他是怎么实现的。其实测距也不复杂,自己完全可以实现,但谁让我懒呢,嘿嘿。