Wie Abfragen ich für Unternehmen, die „in der Nähe“ mit der GeoPt Eigenschaft in Google App Engine sind?

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

Frage

Wie soll ich eine GQL Abfrage erstellen, die die nächsten Einheiten (von meiner aktuellen Position) liefert auf der Grundlage ihrer GeoPt Eigenschaft? Soll ich nur eine ‚Distanz‘ Funktion erstellt, die für eine Reihe von Organisationen, die mit einem einigermaßen nahen Abstand berechnet?

Dank der Zeit voraus!

War es hilfreich?

Lösung

App Engine behandelt nicht GeoPt Eigenschaften speziell - es hat nicht in der räumlichen Indizierung gebaut. Es gibt eine Reihe von Bibliotheken von Drittanbietern, die Unterstützung für räumliche Indizierung hinzufügen, jedoch. Die beste (meiner Meinung nach) ist Geomodells .

Andere Tipps

Sie können die Standorte in App Engine speichert in einem Quadtree Struktur.

Hier ist eine Beschreibung, wie wäre es geschehen: Geographic Abfragen auf Google App Engine

Ich glaube, ich auf eine Art Bagger Leistung werde, aber hier ist es:

Ich war auf der Suche nach einer Lösung für dieses Problem und kam in diesem oficial docs Google: https://cloud.google.com/appengine/docs/java/search / query_strings # Java_Queries_on_geopoint_fields

Ich glaube wirklich, dass Google etwas mehr Lärm darüber gemacht haben sollte. Ich finde es seltsam, dass sie eine Lektion über Python haben für die gleiche Sache zu tun, aber sagen nichts darüber, wie es für Java zu tun.

geohash gesetzt sehr nahe Punkte in verschiedenen Hashes so eine andere oder nächste Schicht bevorzugt werden sollte. Sie können einen Radius, quadratisch innen / außen Form Test oder sogar jede mathematische Form und Test, ob der Punkt innerhalb unseres außerhalb der Form ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top