Je voudrais construire une application de localisation qui détecte automatiquement l'emplacement d'un utilisateur et leur présente une liste triée des points de repère les plus proches d'une base de données historique. L'application sera construite sur l'iPhone.Quelle est la meilleure façon d'architecturer une application géolocalisée "find nearest" sur l'iPhone?
Les questions fondamentales sont les suivantes:
- Comment calculer les distances à proximité des monuments et trier « le plus proche »
- Où effectuer les calculs - sur un serveur externe via un service Web - ou sur la L'iPhone lui-même via une base de données SQLite et/ou Core Location
Idéalement, l'application calculerait les distances en utilisant la «distance routée» par opposition à la distance de vol à voile (c'est-à-dire la plus grande distance de cercle), étant la méthode la plus précise . Bien sûr, cela a un coût - il sera beaucoup plus lent à calculer. Je voudrais savoir quelle méthode serait la plus appropriée. En outre, l'avantage d'effectuer les calculs sur le téléphone lui-même (en utilisant Core Location?) Est qu'il n'est pas nécessaire de parler à un serveur (plus rapide) et l'application peut être utilisée sans connexion Internet. L'inconvénient réside dans la difficulté de garder la base de données historique synchronisée avec les données les plus récentes.
Je voudrais savoir s'il existe une façon standard dans l'industrie de mettre en œuvre une telle application. Si ce n'est pas le cas, veuillez suggérer la meilleure solution possible au problème.
Vous faites une excellente suggestion - une sorte d'approche hybride. Je me demande s'il serait possible de mettre en cache les données d'un point de repère d'une ville entière (ne serait-ce que de 1000 lignes ou plus). Il peut être plus efficace de ne mettre en cache que les emplacements les plus proches, disons dans un rayon de 10 miles, mais je ne suis pas sûr de savoir comment vous en feriez une solution optimale pour trouver les points de repère les plus proches. C'est à dire. Si l'utilisateur bouge légèrement, mais est toujours dans ce rayon, il n'y a aucune garantie que les emplacements les plus proches le seront également. Il peut également être délicat de gérer efficacement les problèmes de chevauchement des emplacements. – mwalsher