Slik Legger Du Til Et Kart I Appen Din Med MapKit og Kjerneplassering– Ios Swift Guide

Trinn 4: Finn Meg-Knapp: Vis Plassering På Kartet

Første trinn vil vi hente gjeldende plassering når brukeren trykker på finn-meg-knappen 🧭.

location manager gir deg gjeldende plassering i et CLLocation objekt med locationManager.location. Dette objektet inneholder forskjellig informasjon, inkludert bredde-og lengdegradskoordinater.

Legg til En merknad På Kartet

la oss opprette en ny funksjon som vil legge til en merknad på kartet ved de oppgitte koordinatene.

følgende funksjon oppretter et nytt MKPointAnnotation objekt, og legger det til på kartet etter at alle tidligere merknader er fjernet. Det zoomer også og ruller kartet for å sette den nylig lagt merknad på midten av skjermen.

Legg Til En Merknad På Kartet

Nå som vi har denne funksjonen, kan du ringe den med gjeldende posisjonsinformasjon du vil vise, i knappen IBAction-funksjonen. For nå vil vi sette nil som tittel siden vi ikke har denne informasjonen ennå.

updateLocationOnMap(to: locationManager.location, with: nil)

Legg til hele adressen til stedet som tittel til merknaden

Nå legger vi til stedets fulle adresse som tittel til merknaden. CoreLocation gir oss en enkel å gjøre det med CLGeocoder.

Opprett en utvidelse til CLLocation og legg til følgende funksjon:

Få Stedsmarkering For Plassering

det vil reversere geokodeplasseringen og gir deg en CLPlacemark, som inneholder all informasjon som trengs for å trekke ut full postadresse.

Adresseinformasjon lagres som nedenfor i Stedsmarkeringsobjektet. For å få en strengverdi av hele adressen, må du sammenkoble komponentene du trenger. Her er et eksempel På Apple HQ-adresse på tabellen nedenfor:

Verdier som tilsvarer CLPlacemark properties

La oss legge til en funksjon i vår CLLocation utvidelse som gir oss hele adressen direkte. For enkelhets skyld kan du legge til en ny eiendom i en utvidelse på CLPlacemark. I dette eksemplet kalles denne egenskapen stringValue.

Få full strengadresse Fra Sted

la Oss nå oppdatere anropet til updateLocationOnMap med vår nye lookUpLocationName – funksjon.

Vis nåværende posisjon på Kartet fra knappen trykk

Bygg og kjør appen din: nå når du trykker på locate-me-knappen, blir din nåværende posisjon lagt til på kartet, og viser din nåværende posisjon full adresse!

Legg Til Et Stedsmerke Fra en strengadresse Til Kartet

Det Meste av funksjonen vi skrev I Trinn 3 for locate-me-knappen vil også bli brukt i denne delen. Vi vil bare legge til en ny funksjon updatePlaceMark(to address: String) og kaller Det På TextField validering.

i denne funksjonen får vi først stedsmarkeringer fra strengverdien angitt av brukeren, så oppdaterer vi kartet med første stedsmarkering med full adresseverdi.

Vis plassering på kart basert på en strengadresse

Merk at geocodeAddressString ikke er en posisjonssøkefunksjon, så for at den skal fungere, må den enten ha en gyldig adresse og identifiserbar plassering, en by, stat eller land i feltet for å få et resultat.

Trinn 6: Vis Sanntidsplassering På Kartet

hvis du vil vise sanntidsplassering, legger du til følgende delegatfunksjon i utvidelsen CLLocationManagerDelegate som vi allerede har opprettet.

Lokasjonsbehandleren kaller Denne funksjonen automatisk på plasseringsoppdateringer, i henhold til policyen som ble definert i begynnelsen.

Vis sanntidsplassering på kartet

Trinn 7: Bygg & Kjør

Bygg og Kjør appen din: Du har nå Et Kart app som viser deg din nåværende posisjon, viser hele adressen i sanntid, finne deg på en finn-meg knappen trykk og lar deg søke etter steder fra et tekstfelt.



+