Vaihe 4: Etsi minut-painike: Näytä sijainti kartalla
ensimmäinen vaihe, haemme nykyisen sijainnin, kun käyttäjä painaa Etsi-me-painiketta 🧭.
sijaintivastaava antaa CLLocation
kohteen nykyisen sijainnin locationManager.location
. Tämä kohde sisältää erilaisia tietoja, mukaan lukien leveys-ja pituuskoordinaattien arvot.
lisätään karttaan huomautus
luodaan uusi funktio, joka lisää karttaan huomautuksen annetuista koordinaateista.
seuraava funktio luo uuden MKPointAnnotation
olion ja lisää sen karttaan poistettuaan kaikki aiemmat merkinnät. Se myös zoomaa ja vierittää karttaa laittaakseen juuri lisätyn merkinnän näytön keskelle.
nyt kun meillä on tämä funktio, voit kutsua sitä nykyisillä sijaintitiedoilla, jotka haluat näyttää, painikkeellasi IBAction-funktio. Toistaiseksi laitamme nil
otsikoksi, koska meillä ei ole vielä tätä tietoa.
updateLocationOnMap(to: locationManager.location, with: nil)
lisää paikan täydellinen osoite otsikkona huomautukseen
nyt lisäämme sijainnin täydellisen osoitteen otsikkona huomautukseen. CoreLocation antaa meille helpon tuloksen CLGeocoder
.
luo laajennus CLLocation
ja lisää seuraava funktio:
se kääntää geokoodin sijainnin ja antaa CLPlacemark
, joka sisältää kaikki tiedot, joita tarvitaan täydellisen postiosoitteen saamiseksi.
osoitetietoja tallennetaan kuten alla olevaan Placemark-kohteeseen. Saadaksesi merkkijonon arvon koko osoitteelle, sinun täytyy yhdistää tarvitsemasi komponentit. Tässä on esimerkki Apple HQ-osoitteesta alla olevassa taulukossa:
lisätään funktio meidän CLLocation
laajennus, joka antaa meille koko osoitteen suoraan. Mukavuussyistä voit lisätä uuden kiinteistön laajennukseen CLPlacemark
. Tässä esimerkissä tätä ominaisuutta kutsutaan nimellä stringValue
.
nyt päivitetään puhelu numeroon updateLocationOnMap
uudella lookUpLocationName
– toiminnolla.
Rakenna ja suorita sovelluksesi: kun painat Paikanna-me-painiketta, nykyinen sijaintisi lisätään kartalle, jolloin näet nykyisen sijaintisi täydellisen osoitteen!
lisää paikkamerkki merkkijonon osoitteesta karttaan
tässä osassa käytetään myös suurinta osaa vaiheesta 3 paikantaa-Me-painiketta varten kirjoittamastamme funktiosta. Lisäämme vain uuden funktion updatePlaceMark(to address: String)
ja kutsumme sen tekstikentän validoinnin yhteydessä.
tässä funktiossa saamme ensin paikkamerkit käyttäjän syöttämästä merkkijonoarvosta, sitten päivitämme kartan ensimmäisellä paikkamerkillä, jossa on sen täysi osoitearvo.
perusteella huomaa, että geocodeAddressString
ei ole sijaintihakuominaisuus, joten toimiakseen se tarvitsee joko kelvollisen osoitteen ja tunnistettavan sijainnin, kaupungin, valtion tai maan kentällä saadakseen tuloksen.
Vaihe 6: Näytä reaaliaikainen sijainti kartalla
näyttääksesi reaaliaikaisen sijainnin, lisää seuraava delegointifunktio jo luomaamme laajennukseen CLLocationManagerDelegate
.
Sijaintivastaava kutsuu tätä toimintoa automaattisesti sijaintipäivitysten yhteydessä alussa määritellyn käytännön mukaisesti.
Vaihe 7: Rakenna & Suorita
Rakenna ja suorita sovellus: Sinulla on nyt karttasovellus, joka näyttää nykyisen sijaintisi, näyttää koko osoitteen reaaliajassa, paikantaa sinut Etsi-me-napin painalluksella ja mahdollistaa sijaintien etsimisen tekstikentästä.