Вопрос

Я отвечаю за программу, которая используется для создания набора узлов и путей для использования автономным наземным транспортным средством.Программа отслеживает расположение всех элементов на своей карте, указывая положение элемента как х метров к северу и y метров к востоку от исходной точки 0,0.В реальном мире транспортное средство знает исходное местоположение по широте и долготе, поскольку оно определяется системой DGPS с точностью до пары сантиметров.Моя программа не знает никаких широтных координат.

Одна из моих целей - изменить программу, чтобы она отслеживала координаты элементов в дополнение к исходной точке и положению элементов по x, y относительно этого источника.На первый взгляд кажется, что я собираюсь изменить программу, чтобы она позволяла передавать координаты начала координат по широте, и после этого я хочу, чтобы программа автоматически вычисляла длину по широте каждого элемента, находящегося в данный момент на карте.Из того, что я исследовал до сих пор, я считаю, что мне нужно будет выяснить математику преобразования в длинные координаты из UTM-подобной проекции, где я указываю исходные точки, меридианы и т. д., в отличие от того, что уже определено для UTM.

Я пришел спросить у вас, ГИС-программистов, на правильном ли я пути?Мне кажется, что есть так много всего, что нужно уложить в голове, и я не уверен, что ответ не будет чем-то таким простым, как: «о да, здесь есть преобразование из метров в длину в широтах».

В настоящее время, из-за особенностей DGPS, системе действительно не нужно больше заботиться о местоположении, чем ох, что...40 км?радиус от начала координат.Учитывая это, а также тот факт, что мне нужно убедиться, что ошибка в моих координатах не превышает 0,5 метра, нужно ли мне что-то более сложное, чем простая константа преобразования широты/долготы в метры?

Я здесь по колено в материалах.Мне могли бы пригодиться некоторые подсказки о том, какие концепции следует исследовать.

Большое спасибо!

Это было полезно?

Решение

Учитывая начальную точку в широте/долготе, а также расстояние и направление, поиск конечной точки представляет собой геодезический расчет.На сайте есть отличная сводка геодезических расчетов и ошибок. сайт проекта 4.Они приходят к выводу, что с помощью сферической модели можно получить результаты по расстоянию между точками с погрешностью не более 0,51%.Это в сочетании с формулой для перевода между WGS-84 и ECEF (см. разделы «LLA в ECEF» и «ECEF в LLA», похоже, вы получите то, что вам нужно.

Если вы хотите действительно выявить ошибки путем обратного проецирования плоской карты в WGS-84, проект.4 представляет собой пакет программного обеспечения для проецирования.Он имеет исходный код и поставляется с тремя утилитами командной строки: proj, который преобразует в/из картографическую проекцию и декартовы данные; cs2cs, который преобразует различные картографические проекции;и geod, который вычисляет геодезические связи.

Геологическая служба США публикует очень всестороннее рассмотрение картографических проекций.

Другие советы

Если можно, я бы сделал полный расчет.Таким образом, вы всегда будете максимально точны.

Если вы используете C++, ГДАЛ очень хорошая библиотека.

Для диапазона 40 км вы можете обнаружить, что приближение мира к плоской 2D-поверхности может сработать, хотя преобразование UTM было бы идеальным способом - в любом случае я бы рекомендовал использовать фактические координаты WGS84 и эллипсоид. для таких расчетов, как расстояние по большому кругу или расчет пеленга.

Если вам станет скучно, вы можете пойти по тому же пути, что и я, и который можно использовать в качестве базового класса для различных данных, таких как OSGB36 или WGS84...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top