How do I query for entities that are “nearby” with the GeoPt property in Google App Engine?

徘徊边缘 提交于 2019-11-29 14:34:42

问题


How should I create a GQL query that returns the nearest entities (from my current location) based on their GeoPt property? Should I just created a 'distance' function that calculates for a set of entities with a reasonably close distance?

Thanks ahead of time!


回答1:


App Engine doesn't treat GeoPt properties specially - it has no built in spatial indexing. There are a number of third-party libraries that add support for spatial indexing, however. The best one (in my opinion) being geomodel.




回答2:


You could store the locations in App Engine in a Quadtree structure.

Here's one description of how it would be done: Geographic Queries on Google App Engine




回答3:


I guess I'm going to some kind of digger achievement, but here it is:

I was looking for a solution for this issue and came across this Google's oficial docs: https://cloud.google.com/appengine/docs/java/search/query_strings#Java_Queries_on_geopoint_fields

I really think that Google should have made some more noise about this. I find it weird that they have a lesson on Python for doing the same thing but says nothing on how to do it for Java.




回答4:


geohash set very close points in different hashes so another or next layer should be preferred. you can make a radius, quadratic inside/outside shape test or even any mathematical shape and test whether the point is within our outside the shape.



来源:https://stackoverflow.com/questions/1033240/how-do-i-query-for-entities-that-are-nearby-with-the-geopt-property-in-google

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!