¿Cómo consulto las entidades que están "cercanas" con la propiedad GeoPt en Google App Engine?

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

Pregunta

¿Cómo debo crear una consulta GQL que devuelva las entidades más cercanas (desde mi ubicación actual) en función de su propiedad GeoPt? ¿Debería crear una función de 'distancia' que calcule un conjunto de entidades con una distancia razonablemente cercana?

¡Gracias de antemano!

¿Fue útil?

Solución

App Engine no trata las propiedades de GeoPt especialmente, no tiene una indexación espacial integrada. Sin embargo, hay varias bibliotecas de terceros que agregan soporte para la indexación espacial. El mejor (en mi opinión) es geomodel .

Otros consejos

Puede almacenar las ubicaciones en App Engine en una estructura Quadtree .

Aquí hay una descripción de cómo se haría: Consultas geográficas en Google App Engine

Creo que voy a algún tipo de logro de excavación, pero aquí está:

Estaba buscando una solución para este problema y encontré los documentos oficiales de Google: https://cloud.google.com/appengine/docs/java/search / query_strings # Java_Queries_on_geopoint_fields

Realmente creo que Google debería haber hecho más ruido al respecto. Me parece extraño que tengan una lección sobre Python para hacer lo mismo, pero no dice nada sobre cómo hacerlo para Java.

geohash establece puntos muy cercanos en diferentes hashes, por lo que se debe preferir otra capa o la siguiente. puede hacer un radio, una prueba de forma cuadrática dentro / fuera o incluso cualquier forma matemática y probar si el punto está dentro de nuestra forma exterior.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top