2017-01-10 1 views
0

J'ai implémenté une application qui peut importer un fichier GPX et contient de nombreuses coordonnées lat/long (plusieurs centaines).demande de géocodage inverse illimitée

Mon application effectue un géocodage inverse pour chaque lat/long. Je veux afficher dans une tableview tout lat/long avec leur adresse (qui sera triée par pays et ville).

Lorsque j'obtiens la réponse d'une requête de géocodage, je demande la requête de géocodage suivante à la fois (comme décrit dans la documentation de reverseGeocodeLocation() d'Apple.) J'ai résolu tous mes Lat/Long

Malheureusement quand j'ai résolu environ 40 Lat/Long, le reverseGeocodeLocation() soulève une erreur (CLError.network) et puis j'ai besoin d'attendre 60 secondes avant de résoudre les suivants etc

J'ai plusieurs questions: - Y a-t-il un moyen d'aller plus vite? Parce que si j'ai 800 lat/long cela prendra environ 20 minutes (800/40) * 60 = 1200 secondes (c'est très long pour une application fonctionnant sur un iPhone) - Même si je n'effectue pas d'améliorations sur le tarif, y a-t-il un risque que si j'ai beaucoup d'utilisateurs alors Apple interdire mon application parce que le nombre de demande de géocodage sera trop élevé?

Merci pour vos commentaires Cordialement,

Sébastien

+0

Les docs indiquent "Envoyer au plus une requête de géocodage pour une action d'un utilisateur". Donc, je dirais que l'envoi de 800 demandes pour une seule action de l'utilisateur risque définitivement d'être rejeté pour avoir abusé des API de géocodage. – dan

+0

Je suis d'accord mais voyez-vous d'autres options (gratuites)? – sebastien

Répondre

0

Est ce que le fichier GPX statique ou sera-il être en train de changer pour chaque utilisateur/télécharger? Si elle est statique, alors peut-être juste inverser le géocodage de toutes les coordonnées au préalable?

Alternativement, recherchez un service différent pour effectuer le géocodage inverse.

+0

Il ne sera pas statique, chaque utilisateur peut importer ses propres fichiers GPX. La seule solution que j'ai trouvée est d'effectuer le géocodage inverse seulement quand l'utilisateur touchera une épingle sur la carte. Un seul à la fois sera résolu et il sera conforme à la règle d'Apple. Dans la table où toutes les entrées sont affichées, je n'afficherai que lat/long pour les entrées non résolues, puis l'adresse complète pour les entrées qui ont été résolues. Si je veux résoudre tous les lat/long la seule solution est de payer pour un service et je ne peux pas me permettre pour mon application Je préférerais avoir une meilleure solution pour mes utilisateurs mais pas de choix – sebastien