ndice / consulta espacial (encontrando k pontos mais próximo
Tenho + 10 mil pontos (latitude, longitude) e estou criando um aplicativo que mostra os k pontos mais próximos da localização de um usuári
Acho que esse é um problema muito comum e não quero reinventar a roda. Estou aprendendo sobre Quadtrees. Parece ser uma boa abordagem para resolver esse problema espacial.
Estou usando estas ferramentas:
Python 2.5 MySQL MongoDbConstruir o Quadtree não é tão difícil:http: //donar.umiacs.umd.edu/quadtree/points/pointquad.htm Mas depois de criar a árvore e salvá-la em um db (MySQL ou MongoDb), como executo a consult
Preciso executar consultas como estas:
Encontre todos os pontos a 10 km da localização do usuári Encontre os 6 (ou pelo menos 6) pontos mais próximos da localização do usuáriQual é a abordagem padrão e comum para fazer isso?
EDIT 1:
Carreguei os + 10k pontos no MongoDB (indexação geoespacial) e ele funciona bem à primeira vista. De qualquer forma eu encontrei PostGis:
@PostGIS é uma extensão do sistema de banco de dados relacional de objetos do PostgreSQL que permite que os objetos GIS (Sistemas de Informações Geográficas) sejam armazenados no banco de dado
Então, acho que vou tentar o PostGis.
Eu também encontrei SimpleGeo. Você pode armazenar pontos / locais na nuvem e consultá-los por meio de uma API:https: //simplegeo.com/docs/tutorials/python#how-do-radial-nearby-quer