библиотека c ++ для преобразования из декартовой системы в широту, долготу и высоту - PullRequest
3 голосов
/ 22 февраля 2011

Я ищу библиотеку c ++, которую можно использовать для преобразования декартовых или сферических координат в широту, долготу и высоту вокруг Земли.Тем не менее, высота должна быть точной.Это означает, что библиотека не может согласиться с предположением, что Земля является сферической при выполнении вычислений, и она должна быть в состоянии обрабатывать высоты над поверхностью Земли.

До сих пор я нашел две библиотеки, которые выглядяткак будто они потенциально могут сделать это ( GeographicLib и GeoStarsLib ), но оба они кажутся небольшими проектами, которые не были должным образом проверены.Мне было бы удобнее с большим проектом или проектом, который, как я знаю, прошел некоторую форму проверки, поэтому мы можем доверять результатам без детального тестирования.Я нашел поддержку.география, но, насколько я могу судить, она не рассчитывает географическую высоту.

Кто-нибудь может предложить какую-нибудь другую библиотеку?

Спасибо

Ответы [ 3 ]

2 голосов
/ 22 февраля 2011

Также посмотрите на Proj.4 и GDAL / OGR.Я считаю, что последний является более полезным, поскольку он включает в себя Proj.4, но добавляет различные полезные функции для чтения различных форматов (включая определения проекций).Число рейнольдсаСферические аппроксимации: Proj.4 будет использовать любой эллипсоид, который вы на него набрасываете (Google принимает сферу для большинства вещей).

2 голосов
/ 10 июля 2011

Я являюсь автором одной из упомянутых библиотек, GeographicLib.Ваши опасения, безусловно, разумны.Позвольте мне указать несколько причин, по которым GeographicLib может удовлетворить ваши потребности:

  • GeographicLib обладает необходимой вам функциональностью через класс Geocentric (вы также можете исследовать классы LocalCartesian и Geoid).

  • Библиотека активно поддерживается мной.Ошибки редки и обычно исправляются в течение нескольких дней с момента их сообщения.

  • Библиотека небольшая и автономная.Он не зависит от дюжины дополнительных библиотек.

  • GeographicLib придерживается стандартов точности, которые обычно выше, чем у geotrans или proj.4.Я измеряю ошибки, сравнивая результаты с данными испытаний, полученными с помощью высокоточных вычислений, и сообщаю об этих ошибках в документации.

Примечание добавлено в ответ на запрос @ rashad: страница, на которой сообщается об ошибках, здесь .На этой странице также описано, как измеряются ошибки.

1 голос
/ 22 февраля 2011

Интересно, могли бы API Google Maps предложить то, что вы ищете:

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

При просмотре документации я вижу ссылки на KmlAltitutudeGeometry.

...