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

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

Question

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!

Was it helpful?

Solution

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.

OTHER TIPS

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

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.

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top