Как грамотно искать ближайшие объекты с учётом маршрутов?
Допустим мне нужно найти ближайших курьеров. Для этого я использую формулу Гаверсинуса. Нашел. Все супер. Но есть проблема - например, ближайший по формуле курьер находится через реку, а на самом деле ближайший курьер находится чуть дальше от точки поиска. И система в итоге выберет курьера который находится на том берегу, ему нужно будет дойти до моста, перейти реку и т д. А второй курьер оказался фактически ближе, ведь ему не нужно было переходить реку. Как решается такая проблема? Знаю что придется использовать апи карт, ведь у меня нет данных маршрутов.
У вас два варианта.
1. Если вы большой и можете хранить граф всех связей нужных вам объектов. Тогда просто делаете это и считаете маршруты и расстояния по графу. При этом расстояние по графу для кратчайшей прямой через реку будет естественно больше.
2. Если вы маленький, тогда считаете расстояния по маршрутам выдаваемым апи картографии.
И берете нужное вам.