Как найти ближайший геохэш в mysql? - PullRequest
0 голосов
/ 07 сентября 2018

Недавно я использую GeoHash для хэширования парных гео-координат в хеш-значение и сохранения его в MySQL. Теперь я хочу найти ближайший хеш, заданный другим хешем. Я заметил, что MYSQL предоставляет структуру BTree для поиска диапазона ближайших хэшей, используя команду «like» в запросе SQL.

Проблема в том, как найти ближайший вместо определения диапазона, поскольку иногда я не знаю диапазон.

Может ли кто-нибудь дать мне подсказку?

Действительно ценю это.

1 Ответ

0 голосов
/ 25 сентября 2018

QuadTile (или GeoHash?) Обратимо превращает широту и долготу в одно число. Но использовать его для «поиска ближайшего» становится сложным и грязным. Читайте о Z-порядке. Насколько я понимаю, вам нужно выполнить 4 запроса с ORDER BY и LIMIT; UNION результаты вместе; затем проверьте, какие из них лучше.

Но сложно понять, что делать, если попытка не нашла достаточно предметов.

SPATIAL индексы обеспечивают более простой способ.

Здесь - это метод эффективного "нахождения ближайшего" для больших наборов данных.

...