SQlite Obtenir le plus proche emplacements (latitude et longitude)

J'ai des données avec la latitude et la longitude stockées dans ma base de données SQLite, et je veux être le plus proche des endroits les paramètres que j'ai mis dans (ex. Ma position actuelle - lat/lng, etc.).

Je sais que c'est possible dans MySQL, et j'ai fait quelques recherches que SQLite a besoin d'un custom fonction externe pour la Haversine formule (calcul de la distance sur une sphère), mais je n'ai pas trouvé tout ce qui est écrit en Java et fonctionne.

Aussi, si je veux ajouter des fonctions personnalisées, j'ai besoin de la org.sqlite .jar (pour org.sqlite.Function), et qui alourdit inutilement la taille de l'application.

L'autre côté de cette est, j'ai besoin de la Commande en fonction de SQL, parce que l'affichage de la distance n'est pas un problème - je l'ai déjà fait dans mon custom SimpleCursorAdapter, mais je ne peux pas trier les données, parce que je n'ai pas la distance de la colonne dans ma base de données. Que signifierait la mise à jour de la base de données à chaque fois que les modifications de l'emplacement et c'est un gaspillage de la batterie et de la performance. Donc, si quelqu'un a une idée sur le tri le curseur avec une colonne qui n'est pas dans la base de données, je lui en serais reconnaissant aussi!

Je sais qu'il y a des tonnes de Android applications qui utilisent cette fonction, mais quelqu'un peut-il expliquer la magie.

Par ailleurs, j'ai trouvé cette alternative: Requête pour obtenir les enregistrements en fonction du Rayon de SQLite?

Il suggère de faire 4 nouvelles colonnes pour les cos et sin valeurs de la lat et de gnl, mais est-il des autres, pas tellement redondant façon?

  • Avez-vous vérifier si org.sqlite.La fonction fonctionne pour vous (même si la formule n'est pas correcte)?
  • Non, j'ai trouvé un (redondant) alternative (édité le post) qui sonne mieux que d'ajouter un 2,6 MB .jar de l'application. Mais je suis toujours à la recherche d'une meilleure solution. Merci!
  • Quel est le rendement de l'unité de distance type?
  • Voici un la pleine mise en œuvre pour la construction d'une requête SQlite sous Android basé sur la distance entre votre emplacement et l'emplacement de l'objet.
InformationsquelleAutor Jure | 2010-09-12