iPhone SDK Sfat rapid lansarea hărților în aplicație

Aplicația iPhone Maps este un program revoluționar care combină puterea GPS și Google Maps cu o interfață incredibil de ușor de utilizat. Acest sfat rapid vă va învăța cum să începeți să profitați de această funcție prin lansarea și configurarea aplicației Hărți din cadrul proiectului dvs. SDK iPhone.

Pasul 1. Face o excursie la Paris

Lansarea aplicației Hărți în propria aplicație se poate face doar cu următoarele două linii de cod:

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

Pe prima linie, solicităm o referință la instanța aplicației care rulează în prezent din clasa UIAapplication.

Pe linia a doua, îi spunem aplicației să deschidă adresa URL furnizată, care este în acest caz o adresă URL Google Maps validă. Mai degrabă decât să deschideți harta în Mobile Safari așa cum s-ar putea să vă așteptați, instanța aplicației este suficient de inteligentă pentru a realiza că această solicitare este mai bine rezolvată de aplicația Hărți și că o va lansa.

Notă: Din păcate, Simulatorul iPhone nu va deschide aplicația Hărți împreună cu codul de mai sus (Simulatorul nu are aplicația Hărți). Va trebui să rulați acest fragment pe un dispozitiv iPhone real pentru a testa. Rularea acestui cod în Simulatorul iPhone va lansa Google Maps în Mobile Safari.

Voila! Bun venit în Franța.

Pasul 2. Configurați parametrii suplimentari

Acum, când înțelegem elementele de bază, să explorăm mai mult funcționalitatea oferită de API-ul Maps.

Adresa URL furnizată mai sus este formatată ca o postare HTTP GET în aplicația Google Maps. El trimite parametrul "q" setat la valoarea "Paris". "Q" înseamnă interogare și este cel mai general tip de solicitare pe care îl putem face. Câțiva alți parametri utilizați în mod obișnuit includ:

  • ll =: Stands pentru "latittude / longitudine" și permite utilizatorului o precizie mult mai mare atunci când trageți hărți. Acest parametru este folosit adesea împreună cu GPS-ul de la bord pentru a realiza o afișare a punctului "Tu ești aici". Valoarea pentru acest parametru trebuie furnizată în format zecimal și trebuie separată prin virgulă.
  • saddr =: Adresa de pornire sau "sursă" de utilizat la generarea de indicații de conducere.
  • daddr =: Adresa de destinație sau "destinație" pe care să o utilizați atunci când generați indicații de conducere.
  • t =: Tipul hărții care va fi afișată.
  • z =: Nivelul de mărire al hărții care va fi afișată.

După cum probabil ați ghicit, puteți combina mai mulți parametri într-o singură cerere GET. Aceasta se face prin legarea lor cu simbolul '&'.

Puteți găsi mai multe informații detaliate despre parametrii sprijiniți (cu exemple) din documentația oficială Apple Inc. aici.

Pasul 3. Trimiteți-vă utilizatorul la Turnul Eiffel

Să încheiem cu un exemplu de combinare a câtorva dintre parametrii personalizați de mai sus și să trimitem utilizatorilor noștri o vedere prin satelit a Turnului Eiffel.

Turnul Eiffel este situat la Latitude 48 ° 51 '32 "Nord, Longitudine 002 ° 17' 45" Est. Cu toate acestea, aceste informații nu ne sunt utile în formatul actual. Trebuie să convertim formatul Grad / Minut / Al doilea în formatul zecimal cerut de Hărți Google ll = parametru.

Există multe instrumente disponibile pentru a face acest lucru rapid, dar, atunci când lucrăm cu Google Maps, îmi place să folosesc un simplu truc pentru a genera o pereche de latitudine / longitudine de pe hartă. După ce ați localizat pe ecran o locație care vă interesează, introduceți în bara de adrese a browserului următorul fragment de cod (preluat de aici) și apăsați enter:

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

Am rămas cu formatul zecimal 48.85812229675187 și 2.294490337371826.

Acum, pentru a trimite utilizatorul nostru direct la Turnul Eiffel, am putea lipi în următoarele:

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

Implicit, aceasta se va lansa cu ajutorul tipului de hartă grafic. Acest lucru nu este la fel de impresionant ca și cum am vedea lucrul real, deci să schimbăm tipul hărții în satelit prin adăugarea '& t = k' la șirul de interogare:

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

Acest lucru funcționează, dar punctul nostru de vedere din partea de sus este doar un pic prea aproape. Să ieșim puțin prin setarea nivelului de mărire a hărții cu '& z = 19':

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

Perfect. La tur eiffel în palma mâinii noastre.

Cod