Trin 4: Find Me-knap: Vis placering på kortet
første trin, vi henter den aktuelle placering, når brugeren trykker på Find-Me-knappen.
placeringsadministratoren giver dig den aktuelle placering i et CLLocation
objekt med locationManager.location
. Dette objekt indeholder forskellige informationer, herunder breddegrad og længdegrad koordinater værdier.
Tilføj en kommentar til kortet
lad os oprette en ny funktion, der tilføjer en kommentar til kortet ved de givne koordinater.
følgende funktion opretter et nyt MKPointAnnotation
objekt og føjer det til kortet efter fjernelse af alle tidligere anmærkninger. Det kaster også og ruller kortet for at placere den nyligt tilføjede kommentar i midten af skærmen.
nu hvor vi har denne funktion, kan du kalde den med de aktuelle placeringsoplysninger, du vil vise, i din knap IBAction-funktion. For nu sætter vi nil
som titel, da vi endnu ikke har disse oplysninger.
updateLocationOnMap(to: locationManager.location, with: nil)
tilføj den fulde adresse på placeringen som titel til annotationen
nu tilføjer vi placeringen fuld adresse som titel til annotationen. CoreLocation giver os en nem at gøre det med CLGeocoder
.
Opret en udvidelse til CLLocation
og tilføj følgende funktion:
det vil vende geokoden placering og giver dig en CLPlacemark
, der indeholder alle de oplysninger, der er nødvendige for at udtrække fuld postadresse.
adresseoplysninger gemmes som nedenfor i Placemarkeringsobjektet. For at få en strengværdi af den fulde adresse skal du sammenkæde de komponenter, du har brug for. Her er et eksempel på Apple-hovedkvarterets adresse på nedenstående tabel:
lad os tilføje en funktion til vores CLLocation
udvidelse, der giver os den fulde adresse direkte. For nemheds skyld kan du tilføje en ny ejendom i en udvidelse på CLPlacemark
. I dette eksempel kaldes denne egenskab stringValue
.
lad os nu opdatere opkaldet til updateLocationOnMap
med vores nye lookUpLocationName
funktion.
Byg og kør din app: nu når du trykker på Find-Me-knappen, tilføjes din aktuelle placering på kortet og viser din aktuelle placering fuld adresse!
Tilføj et Stedmærke fra en strengadresse til kortet
det meste af den funktion, vi skrev i Trin 3 til Find-Me-knappen, vil også blive brugt i denne del. Vi tilføjer kun en ny funktion updatePlaceMark(to address: String)
og kalder den på tekstfeltvalidering.
i denne funktion får vi først stedsmarkeringer fra den strengværdi, der er indtastet af brugeren, så opdaterer vi kortet med det første stedsmarkering med den fulde adresseværdi.
Bemærk, at geocodeAddressString
ikke er en placeringssøgningsfunktion, så for at den kan fungere, skal den enten have en gyldig adresse og identificerbar placering, en by, stat eller et land i feltet for at få et resultat.
Trin 6: Vis placering i realtid på kortet
for at vise placering i realtid skal du tilføje følgende delegeringsfunktion i den CLLocationManagerDelegate
udvidelse, vi allerede har oprettet.
Placeringsadministratoren kalder denne funktion automatisk ved placeringsopdateringer i henhold til den politik, der er defineret i begyndelsen.
Trin 7: Byg & Kør
Byg og kør din app: Du har nu en kortapp, der viser dig din aktuelle placering, viser den fulde adresse i realtid, lokaliserer dig på et Find-Me-knaptryk og giver dig mulighed for at søge efter placeringer fra et tekstfelt.