C#: Как определить, находится ли a координаты в континентальной части Соединенных Штатов?


Я получаю координаты-lat/lon, и я хочу проверить, находятся ли эти координаты в континентальных Соединенных Штатах или нет. Есть ли простой способ сделать это в C#? Я могу преобразовать координаты в MGRS или UTM. Спасибо!

1 4

1 ответ:

Ого, у них есть это только для вас:

Http://econym.org.uk/gmap/states.xml

Все координаты штатов США! Создайте многоугольник и примените любой алгоритм, содержащий точки многоугольника.

Классический алгоритм-это литье лучей, и он даже довольно прост. Дайте мне знать, если у вас возникнут какие-либо проблемы с этим.

Теперь у вас есть два варианта:

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

Однако с этим подходом есть проблема - я не знаю, как были собраны данные, но вполне возможно, что между состояниями очень мало разрывов или даже небольшое перекрытие. Так что если вас волнует только то, есть ли он вообще в США или нет, я предлагаю второй подход:

  • используйте данные для построения полигона для каждого состояния и алгоритм для объединения этих полигонов в один (например, объединение). Сохраните этот полигон и используйте его, как с 1-м подход.