Как сделать поиск всех мест с базы от точки а до точки б?

Здравствуйте!
Появился тут вопрос один. Допустим у меня есть вебапп, где пользователю необходимо вводить данные своей стартовой точки и конечной точки маршрута. Так же в базе расположенны геоданные точек. Так вот, если по всему маршруту пользователя (маршрут должен будет составляться благодаря Гугл мапсу) в радиусе например 15 миль от дороги будет точка, то отображать ее пользователю.
Возможно вопрос простой, но для меня непонятно, как такое сделать. Подскажите, что именно нужно прочесть и изучить. В какую сторону двигаться.
Спасибо!
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@kttotto
пофиг на чем писать
Это называется построение траектории с буфером. Для этого, на основе траектории и буфера строится полигон, а затем уже стандартный алгоритм вхождения точки в полигон.

Самому писать трансформацию линии в полигон - это гемор еще тот, я пытался). По точкам строятся окружности, потом прямоугольники по линиям, потом делается триангуляция, потом удаляются все внутренние треугольники. Но это еще пол беды, потому что есть разница в расстоянии на градус на севере и юге и учитывать в каждой точке полигона этот коэффициент у меня не получилось, в общем кривой полигон получался. Писал я на C# и я не нашел библиотеки, которая бы это делала. Зато я нашел такую на js turf . Когда клиент строит траекторию, указывает буфер, то при сохранении полигон строится на клиенте и уже трансформированный geojson отправляется на сервер.

Полигон из траектории с буфером я делал так
var lineWithBuffer = turf.buffer(line, buffer, 'meters');
geo.features[i].geometry = lineWithBuffer.geometry;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы