C#: Как определить, находится ли a координаты в континентальной части Соединенных Штатов?
Я получаю координаты-lat/lon, и я хочу проверить, находятся ли эти координаты в континентальных Соединенных Штатах или нет. Есть ли простой способ сделать это в C#? Я могу преобразовать координаты в MGRS или UTM. Спасибо!
1 ответ:
Ого, у них есть это только для вас:
Http://econym.org.uk/gmap/states.xml
Все координаты штатов США! Создайте многоугольник и примените любой алгоритм, содержащий точки многоугольника.
Классический алгоритм-это литье лучей, и он даже довольно прост. Дайте мне знать, если у вас возникнут какие-либо проблемы с этим.
Теперь у вас есть два варианта:
- используйте эти данные, чтобы построить полигон для каждого состояния и проверить точку с каждым из них. Если нет матч, его нет в США.
Однако с этим подходом есть проблема - я не знаю, как были собраны данные, но вполне возможно, что между состояниями очень мало разрывов или даже небольшое перекрытие. Так что если вас волнует только то, есть ли он вообще в США или нет, я предлагаю второй подход:
- используйте данные для построения полигона для каждого состояния и алгоритм для объединения этих полигонов в один (например, объединение). Сохраните этот полигон и используйте его, как с 1-м подход.