2010-09-18 30 views

Répondre

2

Le principal problème est de savoir comment stocker et rechercher les données. Si vous utilisez une base de données SQL qui ne prend pas en charge les index spatiaux (disons SQLite sur Android), envisagez de convertir les données spatiales à une courbe linéaire Z-order. L'algorithme est simple, je connais (bien, écrit) this l'implémentation.

+0

C'est le code impressionnant Thomas, chapeau! –

+0

Faire des requêtes de voisin le plus proche sur une grande base de données ne semble pas être une bonne chose à faire directement sur Android de toute façon. Le serveur de base de données est là pour soulever des charges lourdes comme ça en premier lieu. –

+1

@Tim Je suis d'accord Z-order n'est pas génial pour une grande base de données. D'ailleurs, depuis ma réponse en 2010, je l'ai mis en place un [R-Tree] (http://h2database.com/html/mvstore.html#r_tree) qui devrait permettre des requêtes efficaces du plus proche voisin (une fois que ce mis en œuvre) et devrait aussi fonctionner sur Android. Mais il n'utilise pas SQLite. –