C++中的免费地理数据类库(Lat/Lng /距离/转换)

Hor*_*ter 5 c++ geocoding class-library geolocation geospatial

我正在寻找一个免费的地理数据类库.我需要转换不同格式的纬度/经度值(例如此处),获取lat/lng值之间的距离,范围内的坐标等.

谷歌向我展示了C++中的几个单一方法/函数,这不是问题.例子

  1. 计算保存在文本文件中的2个纬度和经度之间的距离?
  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 -

下面的转换方法是一个很好的启动器,但是,如果有其他优秀的库,请告诉我.感谢所有贡献者.

acr*_*075 6

proj4正是你要找的.它是一个严肃的绘图工具,成熟且备受推崇的投影API.它主要用于在地理坐标(lat/lng)和平面(x,y)之间进行前向和后向转换.使用平面坐标的坐标几何比使用地理坐标简单得多.

文档不是最好的.因为它也可以用作独立程序,所以我开始阅读手册页以获得介绍.命令行开关与使用api时用于初始化结构的参数相同.然后阅读api文档 - 基本API函数下列出的函数调用可能就是你所需要的.

用OP作为评论开始编辑:由于许多原因,投影到平面坐标是有吸引力的:坐标比较则是线性单位而不是角度.距离变成了一个微不足道的斜边计算.轴对齐的矩形可以直观地使用.基本的直角三角学可用于计算新的点,例如中间点,偏移等.这是所有提供的区域的范围不是大规模的,例如大陆尺度 - 如果你的数据集在一个度数范围内(那仍然是这个方法你会没事的.