2012-07-12 251 views
4

我正在寻找一个免费的地理数据类库。我需要转换纬度/经度值的不同格式(例如,作为here),得到纬度/经度值之间的距离,坐标范围等C++中的免费地理数据类库(Lat/Lng/distance/conversions)

谷歌显示好几个单的方法/在C函数++,这不是问题。例如

  1. Calculating the distance between 2 latitudes and longitudes that are saved in a text file?
  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 -

下面的变换方法是一个很好的先发,但是,如果有其他伟大的库存,请让我知道。感谢所有参与贡献的人。

回答

5

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

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

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

+0

会检查出来,前向/后向投影的方法是一个有趣的方法,到目前为止我还没有想到。 – 2012-07-13 21:25:45