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