Como faço para consulta de entidades que são “próximos” com a propriedade GeoPt no Google App Engine?

StackOverflow https://stackoverflow.com/questions/1033240

Pergunta

Como devo criar uma consulta GQL que retorna as entidades mais próximas (de minha posição atual), com base em sua propriedade GeoPt? Devo apenas criou uma função de 'distância' que calcula para um conjunto de entidades com uma distância razoavelmente perto?

Graças antes do tempo!

Foi útil?

Solução

App Engine não propriedades GeoPt tratar especialmente - não tem construído em indexação espacial. Há uma série de bibliotecas de terceiros que adicionam suporte para indexação espacial, no entanto. O melhor (na minha opinião) sendo GeoModel .

Outras dicas

Você pode armazenar os locais em App Engine em uma href="http://en.wikipedia.org/wiki/Quadtree" rel="nofollow noreferrer"> estrutura Quadtree

Aqui está uma descrição de como isso seria feito: Geographic consultas no Google App Engine

Eu acho que eu vou a algum tipo de escavadeira realização, mas aqui está:

Eu estava procurando por uma solução para este problema e me deparei com docs Oficiais este do Google: https://cloud.google.com/appengine/docs/java/search / query_strings # Java_Queries_on_geopoint_fields

Eu realmente acho que o Google deve ter feito um pouco mais barulho sobre isso. Acho que é estranho que eles têm uma aula sobre Python para fazer a mesma coisa, mas não diz nada sobre como fazê-lo para Java.

conjunto geohash pontos muito próximos em diferentes hash Portanto, outra ou camada seguinte deve ser preferida. você pode fazer um raio, quadrática dentro / test forma exterior ou mesmo qualquer forma matemática e testar se o ponto está dentro ou fora da forma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top