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