Мне известно об этом: порядок (lng, lat), сферический ($ nearSphere, $ centerSphere, $ box остается неизменным) и расстояния используют радианы.

я + 10k точек (широта, долгота), и я создаю приложение, которое показывает вам k ближайших точек к местоположению пользователя.

Я думаю, что это очень распространенная проблема, и я не хочу изобретать велосипед. Я изучаю Quadtrees. Кажется, это хороший подход для решения этой пространственной проблемы.

Я использую эти инструменты:

Python 2.5MySQLMongoDb

Построить Quadtree не так сложно:http://donar.umiacs.umd.edu/quadtree/points/pointquad.html Но как только я создал дерево и сохранил его в БД (MySQL или MongoDb), как мне выполнить запрос?

Мне нужно выполнить такие запросы:

Найти все точки в пределах 10 км от местоположения пользователя.Найдите 6 (или не менее 6) ближайших точек к местоположению пользователя.

Каков стандартный и общий подход к этому?

РЕДАКТИРОВАТЬ 1:

Я загрузил + 10 тыс. Баллов в MongoDB (Геопространственное индексирование), и на первый взгляд все работает отлично. Во всяком случае я нашелPostGIS:

PostGIS является расширением системы объектно-реляционной базы данных PostgreSQL, которая позволяет хранить объекты ГИС (географические информационные системы) в базе данных.

Думаю, я попробую PostGis.

Я также нашелSimpleGeo, Вы можете хранить точки / места в облаке и затем запрашивать их через API:https://simplegeo.com/docs/tutorials/python#how-do-radial-nearby-query

Ответы на вопрос(3)

Ваш ответ на вопрос