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

Free geo data class library in C++ (Lat / Lng / distance / conversions)

本文关键字:Lat Lng 距离 转换 类库 免费 数据 C++      更新时间:2023-10-16

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

谷歌向我展示了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-

下面的转换方法是一个很好的开端,但是,如果还有其他很棒的库,请告诉我。感谢所有做出贡献的人。

proj4就是您想要的。这是一个严肃的映射工具,成熟且备受尊敬的投影api。它主要用于在地理坐标(lat/lng)和平面(x,y)之间进行前向和后向转换。使用平面坐标的坐标几何比使用地理坐标要简单得多。

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

编辑一开始是对OP的评论:投影到平面坐标很有吸引力,原因有很多:坐标比较是以线性单位而不是角度单位进行的。距离变成了一个琐碎的斜边计算。使用轴对齐的矩形非常直观。基本的直角三角法可以用来计算新的点,例如中点、偏移量等。这一切都是假设该区域的范围不是很大的,例如大陆尺度的范围-如果你的数据集在一个平方度以内(仍然很大),你可以用这种方法。