IPhone Maps-programmet är ett revolutionerande program som kombinerar kraften i GPS och Google Maps med ett otroligt användarvänligt gränssnitt. Den här snabba tipsen kommer att lära dig hur du börjar utnyttja denna funktion genom att starta och konfigurera appen Maps från din iPhone SDK-projekt.
Starta Maps-programmet i din egen app kan göras med bara följande två kodrader:
UIApplication * app = [UIApplication sharedApplication]; [app openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?q=Paris"]];
På linje ett begär vi en referens till den aktuella applikationsinstansen från UIApplication-klassen.
På rad två, berättar vi för ansökan om att öppna den medföljande webbadressen, vilket i detta fall är en giltig Google Maps-webbadress. Snarare än att öppna kartan i Mobile Safari som du kanske förväntar dig är applikationsexemplet tillräckligt smart för att inse att denna begäran hanteras bättre av Maps-appen och startar den istället.
Obs! IPhone Simulator öppnar tyvärr inte Maps-programmet med ovanstående kod (simulatorn har inte appen Maps). Du måste köra den här siten på en faktisk iPhone OS-enhet för att testa. Om du kör den här koden i iPhone Simulator startar du Google Maps i Mobile Safari.
Voila! Välkommen till Frankrike.
Nu när vi förstår grunderna, låt oss gräva lite djupare i funktionaliteten som erbjuds av Maps API.
Webbadressen vi angett ovan är formaterad som ett HTTP GET-inlägg i Google Maps-programmet. Den lägger in parametern "q" inställd på värdet av "Paris". "Q" står för fråga och det är den vanligaste förfrågningstypen som vi kan göra. Några andra vanliga parametrar inkluderar:
Som du kanske har gissat kan du kombinera flera parametrar i en GET-förfrågan. Detta görs genom att gå med i "&" -symbolen.
Du kan hitta mer detaljerad information om stödda parametrar (med exempel) från den officiella Apple Inc.-dokumentationen här.
Låt oss sluta med ett exempel på hur man kombinerar några av de anpassade parametrarna ovan och skickar våra användare till en satellitvy över Eiffeltornet.
Eiffeltornet ligger vid latitud 48 ° 51'32 "norr, longitud 002 ° 17'45" öst. Denna information är dock inte till någon nytta för oss i det nuvarande formatet. Vi måste konvertera graden / minut / andra formatet till det decimalformat som krävs av Google Maps ll = parameter.
Det finns många verktyg tillgängliga för att snabbt göra det på nätet, men när jag arbetar med Google Maps, gillar jag att använda ett enkelt trick för att skapa ett latitud / latitudpar från kartan. När du har den plats du är intresserad av centreras på skärmen, sätt i följande kodsekvens (hämtad härifrån) i adressfältet i din webbläsare och tryck på enter:
javascript: void (. prompt (", gApplication.getMap () getCenter ()));
Vi är kvar med decimaltalet för latitud 48.85812229675187 och longitud 2.294490337371826.
Nu, för att skicka vår användare direkt till Eiffeltornet kunde vi klistra in följande:
[app openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826"]];
Som standard startas detta med den grafiska karttypen. Det här är inte så imponerande som att se den riktiga saken, så låt oss ändra kartortypen till satellit genom att lägga till '& t = k' i vår sökfråga:
[app openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826&t=k"]];
Detta fungerar, men vår uppfattning från toppen är bara lite för nära. Låt oss gå lite ut genom att ställa in kartan zoomnivån med '& z = 19':
[app openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826&t=k&z=19"]];
Perfekt. La tour eiffel i vår handflata.