2010-09-18 5 views

Antwort

2

Das Hauptproblem besteht darin, wie Sie die Daten speichern und durchsuchen. Wenn Sie eine SQL-Datenbank verwenden, die keine räumlichen Indizes unterstützt (sagen wir SQLite unter Android), sollten Sie die räumlichen Daten in eine lineare Z-order-Kurve konvertieren. Der Algorithmus ist einfach, ich weiß über (gut, schrieb) this Implementierung.

+0

Das ist toll Code Thomas, Chapeau! –

+0

Doing nearest neighbour Abfragen auf einer großen Datenbank scheint nicht eine gute Sache zu tun, direkt auf Android sowieso. Der Datenbankserver ist dafür da, um schwere Lasten zu heben. –

+1

@Tim ich stimme zu Z-Auftrag ist nicht so toll für eine große Datenbank. Seit meiner Antwort im Jahr 2010 habe ich übrigens einen [R-Tree] (http://h2database.com/html/mvstore.html#r_tree) implementiert, der effiziente Nearest-Neighbor-Abfragen ermöglichen soll (sobald dies implementiert ist) und sollte auch auf Android funktionieren. Aber es verwendet nicht SQLite. –

Verwandte Themen