GPS Polyline расстояние или функция хеширования - PullRequest
0 голосов
/ 23 октября 2019

Я работаю над проектом, в который добавлен набор командировок пользователями, и я сохраняю в своей БД источник, место назначения и ответ на звонок, который я делаю, в Google Directions API. Я также сохраняю полученную полилинию в виде строки.

Сейчас я реализую функцию поиска на основе пользовательского ввода. Я хочу, чтобы пользователь ввел маршрут, и я бы нашел маршруты, которые совпадают или в которые включен искомый маршрут.

Моя первая наивная реализация выглядит следующим образом:

1. Get a polyline for the current searched route.
2. Create a string from that polyline by concatenating all the points (with a known format)
3. Compare the string with all the polyline strings saved in the database (basically, a SQL IN() call)

Этот подход работает, но есть несколько проблем:

  • Он работает с точными совпадениями и под совпадениями
  • Сильно вычислительно

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

...