Suggerimento dell'SDK per iPhone lancio di mappe in-app

L'applicazione Mappe di iPhone è un programma rivoluzionario che combina la potenza del GPS e di Google Maps con un'interfaccia incredibilmente intuitiva. Questo suggerimento rapido ti insegnerà come iniziare a sfruttare questa funzionalità avviando e configurando l'app Maps dal tuo progetto iPhone SDK.

Passaggio 1. Fai un viaggio a Parigi

L'avvio dell'applicazione Mappe all'interno della tua app può essere effettuato con le seguenti due righe di codice:

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

Alla prima linea, richiediamo un riferimento all'istanza dell'applicazione attualmente in esecuzione dalla classe UIApplication.

Alla seconda riga, diciamo all'applicazione di aprire l'URL fornito, che in questo caso è un URL di Google Maps valido. Piuttosto che aprire la mappa in Mobile Safari come ci si potrebbe aspettare, l'istanza dell'applicazione è abbastanza intelligente da comprendere che questa richiesta viene gestita meglio dall'app Maps e la avvia invece.

Nota: Sfortunatamente, iPhone Simulator non aprirà l'applicazione Mappe con il codice sopra (il Simulatore non ha l'app Maps). Avrai bisogno di eseguire questo snippet su un dispositivo iPhone OS reale per testare. L'esecuzione di questo codice in iPhone Simulator avvierà Google Maps in Mobile Safari.

Ecco! Benvenuti in Francia.

Passaggio 2. Configurare parametri aggiuntivi

Ora che comprendiamo le nozioni di base, approfondiamo le funzionalità offerte dall'API di Maps.

L'URL che abbiamo fornito sopra è formattato come un post GET HTTP per l'applicazione Google Maps. Sottopone il parametro "q" al valore di "Paris". La "q" sta per query ed è il tipo di richiesta più generale che possiamo fare. Alcuni altri parametri comunemente usati includono:

  • ll =: Sta per "latittude / longitude" e consente all'utente una precisione molto maggiore quando si estrae le mappe. Questo parametro viene spesso utilizzato insieme al GPS di bordo per tracciare la visualizzazione del punto "Sei qui". Il valore per questo parametro deve essere fornito in formato decimale e deve essere separato da virgola.
  • saddr =: L'indirizzo di partenza o "origine" da utilizzare per la generazione delle indicazioni stradali.
  • DADDR =: L'indirizzo di fine o "destinazione" da utilizzare per la generazione delle indicazioni stradali.
  • t =: Il tipo di mappa che verrà visualizzata.
  • z =: Il livello di zoom della mappa che verrà visualizzata.

Come avrai intuito, puoi combinare più parametri in una richiesta GET. Questo viene fatto unendoli con il simbolo "&".

Puoi trovare informazioni più dettagliate sui parametri supportati (con esempi) dalla documentazione ufficiale di Apple Inc. qui.

Passaggio 3. Invia il tuo utente alla Torre Eiffel

Concludiamo con un esempio di come combinare alcuni dei parametri personalizzati sopra e inviare i nostri utenti a una vista satellitare della Torre Eiffel.

La Torre Eiffel si trova a Latitudine 48 ° 51 '32 "Nord, Longitudine 002 ° 17' 45" Est. Tuttavia, questa informazione è di scarsa utilità per noi nel formato corrente. Abbiamo bisogno di convertire il formato Degree / Minute / Second nel formato decimale richiesto da Google Maps ll = parametro.

Ci sono molti strumenti disponibili per farlo rapidamente online, ma, quando si lavora con le mappe di Google, mi piace usare un semplice trucco per generare una coppia di latitudine / longitudine dalla mappa. Dopo aver individuato la posizione che ti interessa centrata sullo schermo, inserisci il seguente frammento di codice (ripreso da qui) nella barra degli indirizzi del browser e premi invio:

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

Siamo rimasti con il formato decimale di latitudine 48.85812229675187 e la longitudine 2.294490337371826.

Ora, per inviare il nostro utente direttamente alla Torre Eiffel, potremmo incollare quanto segue:

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

Per impostazione predefinita, questo verrà avviato con il tipo di mappa grafica. Questo non è tanto impressionante quanto vedere la cosa reale, quindi cambiamo il tipo di mappa in satellite aggiungendo '& t = k' alla nostra stringa di query:

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

Funziona, ma la nostra vista dall'alto è solo un po 'troppo vicina. Esci un po 'impostando il livello di zoom della mappa con "& z = 19":

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

Perfezionare. La tour eiffel nel palmo della nostra mano.