Географические препятствия при поиске по радиусу

Я здесь новичок и плохо оцениваю, поэтому могу предложить вознаграждение только в 50 пунктов.

Предположим, у меня есть приложение для поиска всех заправочных станций в радиусе 10 миль от определенного места. Однако с одной стороны это место окружено горным хребтом, который вам нужно проехать 50 миль, чтобы обойти его. Вы бы не хотели возвращать результаты с другой стороны горы. Какие есть хорошие алгоритмы / методы для решения такой проблемы? Я знаю, что при поиске точка-точка вы можете использовать стоимость пути, но я не уверен, каков метод поиска по радиусу.

Вот пример:

alt text

Красная линия - это хорда на радиусном круге от 40, - От 74 до 41, -72 широты (неточно, просто сказать). Пользователь с координатами 40, -73 выполняет поиск по географическому радиусу для чего-то, что также включает области в звуке LI в Коннектикуте, добраться до которых непрактично. Алгоритм должен знать, что существует хорда, полностью пересекающая круг поиска, и не возвращать результаты, которые находятся по другую сторону от этого хорды. Таким образом, будут возвращены только очки в зеленой зоне.

Это должно быть возможно без анализа дорожной сети, если программист определяет эти ограничивающие линии. Например, в какой-то стране может быть зона, через которую проезд опасен, и вы хотите, чтобы люди по обе стороны от этой зоны были ограничены этой стороной. Или международная граница и т. Д. Я просто спрашиваю об этом, потому что почти уверен, что люди это делают.

14
задан Michael Papile 21 January 2011 в 20:11
поделиться