Conseil rapide sur le SDK pour iPhone lancement de cartes dans l'application

L'application iPhone Maps est un programme révolutionnaire qui associe la puissance du GPS et de Google Maps à une interface extrêmement conviviale. Ce petit conseil vous apprendra à tirer parti de cette fonctionnalité en lançant et en configurant l’application Cartes à partir du projet de votre iPhone SDK..

Étape 1. Faites un voyage à Paris

Le lancement de l'application Cartes dans votre propre application peut être effectué avec les deux lignes de code suivantes:

 UIApplication * app = [UIApplication sharedApplication]; [app openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?q=Paris"]]; 

Sur la première ligne, nous demandons à la classe UIApplication de faire référence à l'instance d'application en cours d'exécution.

Sur la deuxième ligne, nous indiquons à l'application d'ouvrir l'URL fournie, qui est dans ce cas une URL Google Maps valide. Plutôt que d'ouvrir la carte dans Mobile Safari, comme on pouvait s'y attendre, l'instance d'application est suffisamment intelligente pour se rendre compte que cette demande est mieux gérée par l'application Maps et la lancera à la place..

Remarque: Malheureusement, le simulateur iPhone n'ouvrira pas l'application Maps avec le code ci-dessus (le simulateur ne dispose pas de l'application Maps). Vous devez exécuter cet extrait sur un périphérique iPhone OS réel pour le tester. L'exécution de ce code dans le simulateur iPhone lancera Google Maps dans Mobile Safari.

Voila! Bienvenue en France.

Étape 2. Configurez les paramètres supplémentaires

Maintenant que nous avons compris les bases, approfondissons un peu les fonctionnalités offertes par l'API Maps..

L'URL fournie ci-dessus est au format HTTP GET dans l'application Google Maps. Il soumet le paramètre «q» défini à la valeur de «Paris». Le «q» correspond à une requête et il s'agit du type de requête le plus général que nous puissions créer. Quelques autres paramètres couramment utilisés incluent:

  • ll =: Signifie «latittude / longitude» et permet à l’utilisateur d’obtenir une plus grande précision lors de l’affichage des cartes. Ce paramètre est souvent utilisé conjointement avec le GPS intégré pour tracer un affichage du point «Vous êtes ici». La valeur de ce paramètre doit être fournie au format décimal et doit être séparée par des virgules..
  • saddr =: Adresse de départ ou «source» à utiliser pour générer des itinéraires.
  • daddr =: L'adresse de fin ou de destination à utiliser pour générer des itinéraires.
  • t =: Le type de carte qui sera affiché.
  • z =: Le niveau de zoom de la carte qui sera affichée.

Comme vous l'avez peut-être deviné, vous pouvez combiner plusieurs paramètres dans une requête GET. Ceci est fait en les rejoignant avec le symbole '&'.

Vous trouverez des informations plus détaillées sur les paramètres pris en charge (avec des exemples) dans la documentation officielle de Apple Inc. ici..

Étape 3. Envoyez votre utilisateur à la tour Eiffel

Terminons par un exemple montrant comment combiner certains des paramètres personnalisés ci-dessus et envoyer nos utilisateurs vers une vue satellite de la Tour Eiffel..

La tour Eiffel est située à 48 ° 51 '32 "de latitude nord et 002 ° 17' 45" de longitude est. Cependant, cette information nous est peu utile dans le format actuel. Nous devons convertir le format Degré / Minute / Seconde au format décimal requis par Google Maps. ll = paramètre.

Il existe de nombreux outils disponibles pour effectuer rapidement cette opération en ligne, mais lorsque j'utilise Google Maps, j'aime utiliser une astuce simple pour générer une paire latitude / longitude à partir de la carte. Une fois que vous avez centré l'écran sur l'emplacement qui vous intéresse, insérez l'extrait de code suivant (tiré d'ici) dans la barre d'adresse de votre navigateur et appuyez sur Entrée:

 javascript: void (prompt (", gApplication.getMap (). getCenter ())); 

Nous nous retrouvons avec le format décimal de latitude 48.85812229675187 et de longitude 2.294490337371826.

Maintenant, pour envoyer notre utilisateur directement à la Tour Eiffel, nous pourrions coller ce qui suit:

 [app openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826"]]; 

Par défaut, cela se lancera avec le type de carte graphique. Ce n'est pas aussi impressionnant que de voir la vraie chose, changeons donc le type de carte en satellite en ajoutant '& t = k' à notre chaîne de requête:

 [app openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826&t=k"]]; 

Cela fonctionne, mais notre vue du sommet est un peu trop proche. Sortons un peu en réglant le niveau de zoom de la carte avec '& z = 19':

 [app openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826&t=k&z=19"]]; 

Parfait. La tour Eiffel dans la paume de notre main.