Я пытаюсь сохранить базу данных местоположений GPS и выполнить запросы, которые находят точки в данном радиусе, а также самые близкие точки.Я использую mysql и смотрю на пространственные расширения.Я не уверен, вижу ли я, как на самом деле использовать пространственные расширения, чтобы делать то, что я ищу в запросах радиуса местоположения.
Итак, вот что я думаю о своих вариантах:
Сохраните координаты широты и долготы в формате GPS в виде переменных с плавающей запятой в БД.Когда я получу координату GPS-точки и диапазон, вычислим значения max и min lat и long для запроса, а затем отсортируем их на основе функции расстояния в них.
Используйтепространственное расширение.Я не совсем уверен, что это будет работать.Функция Distance () не реализована.Использование пространственного индекса требует нахождения ограничивающего прямоугольника (выполнимого) и вызова функции ограничивающего прямоугольника MBRContains для нахождения точек, находящихся в этом ограничивающем прямоугольнике.Однако точка имеет нулевую границу, поэтому функция MBRContains не работает с точками.
Я не уверен, что стандартный способ сделать это (кажется, что нет) и был бы очень признателен за любые слова опыта / мысли / помочь с решением.В настоящее время я использую mysql 5.13, и я почти уверен, что даже у 5.5 on нет метрики расстояния.
Также - даже если 2. работает, какой из них будет быстрее?Пожалуйста, дайте мне знать, что вы думаете, и особенно если вы уверены / видели что-то работает для быстрого и большого поиска!
Пространственный индекс Mysql: http://dev.mysql.com/doc/refman/5.5/en/using-a-spatial-index.html