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