C++中的免费地理数据类库(Lat/Lng/距离/转换)
Free geo data class library in C++ (Lat / Lng / distance / conversions)
我正在寻找一个免费的地理数据类库。我需要转换纬度/经度值的不同格式(例如这里),获取纬度/经度之间的距离、范围内的坐标等。
谷歌向我展示了C++中的几个单一方法/函数,这不是问题所在。示例
- 计算保存在文本文件中的2个纬度和经度之间的距离
- Lat Long:http://www.codecogs.com/code/maths/geometry/spherical/latlong.php
我正在寻找一个更完整/更复杂的类库,其中包含一些文档和示例。有什么提示吗?
--编辑--
LatLong就是这样一个Javascript库:http://www.movable-type.co.uk/scripts/latlong.html
还将检查(C++):http://geographiclib.sourceforge.net/html/annotated.html
--编辑2-
下面的转换方法是一个很好的开端,但是,如果还有其他很棒的库,请告诉我。感谢所有做出贡献的人。
proj4就是您想要的。这是一个严肃的映射工具,成熟且备受尊敬的投影api。它主要用于在地理坐标(lat/lng)和平面(x,y)之间进行前向和后向转换。使用平面坐标的坐标几何比使用地理坐标要简单得多。
文档不是最好的。因为它也可以作为一个独立的程序使用,所以我会先阅读手册页来获得介绍。命令行开关与使用api时用于初始化结构的参数相同。然后阅读api文档-基本api函数下列出的函数调用可能就是您所需要的全部。
编辑一开始是对OP的评论:投影到平面坐标很有吸引力,原因有很多:坐标比较是以线性单位而不是角度单位进行的。距离变成了一个琐碎的斜边计算。使用轴对齐的矩形非常直观。基本的直角三角法可以用来计算新的点,例如中点、偏移量等。这一切都是假设该区域的范围不是很大的,例如大陆尺度的范围-如果你的数据集在一个平方度以内(仍然很大),你可以用这种方法。