Domanda

Come devo creare una query GQL che restituisca le entità più vicine (dalla mia posizione corrente) in base alla loro proprietà GeoPt? Devo solo creare una funzione "distanza" che calcola per un insieme di entità con una distanza ragionevolmente vicina?

Grazie in anticipo!

È stato utile?

Soluzione

App Engine non tratta le proprietà GeoPt in modo particolare, non ha l'indicizzazione spaziale integrata. Esistono tuttavia alcune librerie di terze parti che aggiungono supporto per l'indicizzazione spaziale. Il migliore (secondo me) è geomodel .

Altri suggerimenti

Puoi archiviare le posizioni in App Engine in una Quadtree .

Ecco una descrizione di come sarebbe fatto: Ricerche geografiche su Google App Engine

Immagino che vado a una sorta di risultato da scavatore, ma eccolo qui:

Stavo cercando una soluzione per questo problema e mi sono imbattuto nei documenti ufficiali di Google: https://cloud.google.com/appengine/docs/java/search / query_strings # Java_Queries_on_geopoint_fields

Penso davvero che Google avrebbe dovuto fare più rumore al riguardo. Trovo strano che abbiano una lezione su Python per fare la stessa cosa ma non dice nulla su come farlo per Java.

geohash imposta punti molto vicini in hash diversi, quindi è preferibile un altro o successivo livello. puoi effettuare un raggio, un test quadratico interno / esterno della forma o persino qualsiasi forma matematica e verificare se il punto si trova all'interno del nostro esterno alla forma.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top