ehfeng
ehfeng

Reputation: 3865

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

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!

Upvotes: 7

Views: 4468

Answers (4)

VyMajoris
VyMajoris

Reputation: 66

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.

Upvotes: 2

Niklas Rosencrantz
Niklas Rosencrantz

Reputation: 26647

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.

Upvotes: 0

Nick Johnson
Nick Johnson

Reputation: 101149

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.

Upvotes: 9

pufferfish
pufferfish

Reputation: 17425

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

Upvotes: 4

Related Questions