MGRS/USNG- Обнаружение изменений зоны

Я пишу библиотеку преобразования координат для javascript (как для NodeJS, так и для javascript браузера). Я уже совсем немного сделал. Проверьте, если вам интересно. Я не писал большую часть кода, поэтому я не совсем уверен, как все работает.

Насколько я могу судить, зоны MGRS/USNG в основном переименованы в зоны UTM, которые, в свою очередь, определяются с точки зрения широты/долготы.

Допустим, у меня есть координата MGRS, и я перемещаюсь на определенное перемещение. Могу ли я точно определить, пересек ли я границу зоны, без предварительного преобразования в широту/долготу? Я знаю, как обновлять координаты при перемещении внутри зоны, потому что почти все внутри зон квадратное.

Есть ли способ обнаружить изменения зоны без необходимости преобразования широты/долготы?

Есть ли библиотеки на любом языке, которые делают это?

Существующий код требует широты и долготы, поэтому я думаю, что мог бы преобразовать в широту/долготу, применить преобразование, а затем преобразовать обратно в MGRS. Это было бы не так уж плохо, если бы я хотел только определить зону, в которой я нахожусь, тогда я мог бы сохранить остальную часть преобразования в MGRS для поддержания точности. Единственная проблема в том, что я хочу быть максимально точным.

Примечание:

Я нашел эту статью, объясняющую преобразование координат, но это не действительно охватывают преобразования координат.


person beatgammit    schedule 18.05.2011    source источник
comment
Только что заметил, что для картографов есть стекообменник. Будет ли это место там вместо этого? Это своего рода гибрид программирования и картографии.   -  person beatgammit    schedule 19.05.2011


Ответы (2)


библиотека Java openmap может может помочь (вы можете адаптировать код к JavaScript). У них есть конвертация MGRS в широту/долготу и многое другое. Что касается обнаружения изменений зоны, вы можете попробовать опубликовать этот вопрос на сайте GIS Stack Exchange. Я уверен, что кто-нибудь там ответит.

MGRS имеет номера ссылок на сетку, а не широту/долготу. См. здесь. Таким образом, вам не нужно конвертировать в широту/долготу, чтобы определить, что вы пересекли сетку.

person dbryson    schedule 18.05.2011
comment
Я боялся этого. Могу ли я перенести свой вопрос туда? Я бы предпочел избегать кросс-постинга, если это возможно. - person beatgammit; 19.05.2011
comment
Я думаю, что зоны основаны на широте/долготе. Все остальное в зонах - это всего лишь метры, что достаточно просто. - person beatgammit; 19.05.2011
comment
Этот ответ был полезен, но не полностью ответил на мой вопрос. +1 за ссылку на библиотеку openmap, это было полезно. - person beatgammit; 24.05.2011
comment
Ссылка на библиотеку Java openmap не работает (404 Not Found). - person Pang; 11.08.2017

Из того, что я обнаружил, невозможно напрямую конвертировать между MGRS и широтой/долготой.

MGRS (или USNG, если на то пошло) использует те же определения зон, что и UTM, который определяется координатами широты и долготы. UTM и MGRS (USNG) делают мир по существу плоским, используя поддельные коэффициенты для поддержания высокой точности (в пределах метра или около того). Поскольку эти сетки рассматриваются как плоские, они ненадежны для определения границ зон, которые определяются в терминах большого круга.

Преобразование между MGRS и UTM выполняется легко (и почти без потерь), а преобразование между UTM и широтой/долготой выполняется довольно точно, хотя и не на 100%.

Из того, что я прочитал, лучший способ точно перевести координату MGRS — сначала преобразовать ее в широту/долготу, применить перевод, а затем преобразовать обратно. Это хорошо для обнаружения изменений зоны, но более точную точку назначения потенциально можно найти, используя зону из преобразования широта/долгота и применяя остальную часть преобразования в координатах MGRS. Это должно обнаруживать изменения в средней квадратной зоне.

Ссылки/ресурсы:

http://en.wikipedia.org/wiki/Military_grid_reference_system

http://www.stellman-greene.com/mgrs_to_utm/

person beatgammit    schedule 24.05.2011