8
votes

IOS: Utilisez des cartes hors ligne

Dans mon application, je souhaite utiliser des cartes hors ligne et avec cette carte utilise des fichiers GPX pour avoir un itinéraire. J'ai trouvé OpenStreetMap pour le faire, mais y a-t-il de meilleurs services? (la meilleure solution avec les courbes de niveau) merci


1 commentaires

4 Réponses :


11
votes

Les cartes hors ligne nécessitent un peu d'expérience dans IOS car il n'y a pas de nombreux projets et exemples là-bas. Cependant, vous avez un projet appelé itinéraire-moi qui pourrait vous donner un point de départ. Nous l'avons utilisé pour développer Metro Valencia hors ligne qui le rendit avec succès à l'App Store. J'ai écrit un petit tutoriel sur Comment ajouter itinéraire-moi dans votre projet.

Fondamentalement, vous pouvez utiliser n'importe quelle carte de carte que vous pouvez souhaiter (OpenStreetMaps en est l'un d'entre eux et aussi celui que nous avons utilisé). Ce que vous devrez faire est:

  1. Téléchargez la carte tuiles ( https://metacpan.org/pod/geo :: OSM :: Tiles )
  2. Mettez-les dans une base de données SQLite ( http://shikii.net/blog/downloads /map2sqlite-bin.zip )
  3. Modifier la route-moi pour les tuiles à nourrir de la base de données au lieu de OpenStreetMaps Site Web

6 commentaires

Pouvez-vous m'expliquer cette exception? "SimpleMap [1020: 907] *** Application de terminaison due à une exception non capturée" NsinternalconsisconsiscyException ", raison:" Les graphiques et la mémoire sont trop taxés si [Sommaire Minzoom] est supérieur à 1,5 plus petit que [Tilesource Minzoom] '"


C'est en fait un Nsassert lancé par route-moi que je n'ai jamais bien compris. Je l'ai commenté et je n'ai jamais eu de problème. Le NSASSert peut être trouvé sur rmapcontents.m à l'intérieur de la méthode Settilsource: ps. Il y en a un autre à SetMinzoom: mais j'ai quitté ce dernier tel qu'il est.


wow fantastique, maintenant ça marche !! merci ... puis-je écrire ici si j'ai d'autres questions?


Pouvez-vous me suggérer comment ajouter un GPX sur ma carte? J'ai eu ce fichier quelle est la façon de le montrer sur la carte?


Vous devriez poser une nouvelle question au lieu de l'écrire sur les commentaires. Quoi qu'il en soit, laisse-moi un mail à hola@alexsalom.es et je vais essayer d'aider.


Alex vient de me sauver des heures de frustration.



2
votes

Vous pouvez également tester: Skobbler / Telenav: http://developer.skobbler.com/support#dowload Il est basé sur OpenStreetMap et ils ont eu des capacités hors ligne complètes (navigation sur les pistes GPX, rendu de la carte, routage et retournement)


0 commentaires

1
votes

Il y a aussi NutiteQ Maps SDK: http://developer.nutiteq.com , cartes hors ligne pour iOS et Android, prend en charge Xamarin IDE (C #) et langues autochtones (Java, Objectivec, Swift). Ce n'est pas tellement de routage et de navigation (selon E.G. Skowbbler), mais plus pour la concentration sur des cartes complexes avec des couches interactives (points, lignes et polygones sur les cartes). Un avantage est que vous pouvez utiliser vos propres sources de carte de base (interne, 3e parties), pas seulement OpenStreetMap quel SDK lui-même fournit.

Disclaimer: Je suis développeur.


0 commentaires

1
votes

J'ai utilisé la carte par défaut de MapKit et une sous-classe de MKTILEOVERLAY pour pouvoir enregistrer des carreaux téléchargés et renvoyer des tuiles déjà mises en cache sans les télécharger.

1) Modifier la source de votre carte par défaut de Mapkit et utilisez une sous-classe de MKTILEOVAY ( Utilisé "Open Street Carte" ici) P>

- (void)loadTileAtPath:(MKTileOverlayPath)path
                result:(void (^)(NSData *data, NSError *error))result


0 commentaires