Использование долготы и широты - лучший способ определить, какие точки из одного списка находятся ближе всего к каждой точке в другом списке. - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть список, который имеет широту и долготу точек на карте.Я хочу идентифицировать участки переписи, центр которых находится в десяти милях или более от всех точек в списке (в основном идентифицируя сельские участки переписи).У меня также есть список всех переписных участков и широты и долготы их центра.Как можно сопоставить каждый переписной участок с каждой точкой в ​​списке, определить расстояние от их центра до каждой точки и создать список переписных участков, у которых нет точек в пределах десяти миль от их центра?

1 Ответ

0 голосов
/ 19 декабря 2018

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

Реальная проблема с этой проблемой - ее сложность.Если вы имеете дело с большим количеством CT, повторение растущего списка для сравнения с каким-то новым значением будет очень дорогостоящим.Вероятно, есть способ оптимизировать это, используя карту и сравнивая только новый тракт с другими участками в десятимильном квадрате вокруг него, но я думаю, что это скорее математическая проблема, чем программная.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...