c ++库从笛卡尔系统转换为纬度,经度和海拔高度

时间:2011-02-22 15:00:55

标签: c++ geolocation

我正在寻找一个c ++库,可用于将笛卡尔坐标或球坐标转换为地球周围的纬度,经度和海拔高度。但是,高度必须准确。这意味着图书馆在进行计算时不能认为地球是球形的,它必须能够处理地球表面以上的高度。

到目前为止,我发现了两个看起来可能会执行此操作的库(GeographicLibGeoStarsLib),但这两个库似乎都是未经正确审核的小项目。我会更熟悉一个更大的项目,或者我知道已通过某种形式的审查,所以我们可以信任输出而无需详细测试。我确实找到了提升。地理位置,但据我所知,它并不计算地理高度。

有人可以推荐任何其他图书馆吗?

谢谢

3 个答案:

答案 0 :(得分:2)

另请参阅Proj.4和GDAL / OGR。我发现后者更有用,因为它包括Proj.4,但添加了各种有用的函数来读取各种格式(包括投影定义)。回覆。球面近似:Proj.4将使用你抛出的任何椭圆体(谷歌假设大多数情况都是球体)。

答案 1 :(得分:2)

我是其中一个提到的图书馆GeographicLib的作者。您的 关注当然是合理的。我指出几个原因 为什么GeographicLib可以满足您的需求:

  • GeographicLib通过Geocentric类提供您想要的功能 (您也可以调查LocalCartesian和Geoid类。)

  • 图书馆由我积极维护。虫子很少见 通常在报告后几天内确定。

  • 图书馆小而且独立。它不依赖于 十几个额外的图书馆。

  • GeographicLib遵循通常的准确性标准 高于geotrans或proj.4。我通过比较来衡量错误 结果反对通过高精度计算获得的测试数据,和 我在文档中报告了这些错误。

注意回复@ rashad的查询: 报告错误的页面是 here。此页面还描述了如何衡量错误。

答案 2 :(得分:1)

我想知道Google地图API是否可以提供您所寻求的内容:

http://code.google.com/apis/earth/documentation/reference/interface_kml_point.html

在查看文档时,我看到了对KmlAltitutudeGeometry的引用。