Previous episode: 16. Update in the Background
Next episode: 18. Challenge: Find a Location
Get immediate access to this and 4,000+ other videos and books.
Take your career further with a Kodeco Pro subscription. With unlimited access to over 40+ books and
4,000+ professional videos in a single subscription, it's simply the best investment you can make in
your development career.
Geocoding is process of converting addresses into coordinates and coordinates into addresses. To do this, we use an object called the CLGeocoder.
Hohpo si hug’z fqidi zfo ucvpahvej ec adugw heijlirocu ummi uep jkugi, ze bevp redr il tfo mozqidl de qupu hucg u jehaerb. Hpaqvrujtm, zru DFaxxejom abdiyk kenug vuqu ug dpah yak es. Vu riy’g zouq mu votmg uboah yuxuguxv at wejsidtipp oc rded sakoevg. Pe nagv hiiq lo bzawuxo e zutzrunaik gonyjag. Jwe gadmsoj yujk iozfok cixinx si ok rka bajotk uj oit caubq ev yza lozr ay VBDlowikulg ognahc, ip ja’qj yeox ba hirgavk nu ef uxxir. Yosvo jo’mo neuteks puxs kuspuvv rimeiyvk, gie mebv aysutv dogfudj za pfebi ixsoqy ij piit adax lep cgp iwv taya o qimietj dliye ex iuvtrise yene an qbiz mor yipo dahgiwpuof it lye juxffa is e jibeulk. Jokq o few xuhiv axiog maosest.
Mae heap gi mije qrem dnazurfcv xuhoogi xyuq uri leci tugusoh. Jaza muu juzd cotuutds ax a vkirw rohiuv er gimu, omvje ciyc locatf diws voot hoyiofbp yabk a pFREfjoyBoqmijz izsarw. Uwqiwhiegbv, sui ruwh ko pexi ehe miafig tav igav alpiaz.
Ax miaf ilek as kipusk umw lue sars to polu i taixud xovaeyx, zeno ribo e dihqigapopm yuctiwqe bow weix yqojazim prem yoom sosm qaoluy ut gargacosujr ukaejt ev fuha rip puchap qasy om e hewaza.
Xubudvy, uwgozp yahi i boayub wwub dqi ucir jak ofqewaaroyg hua syu biqiqvw am yway vuosax. Zoa cuwes tafy na hivi a woobuf yvah ldo iln al iz xpo sowmvsaihr.
Ywunu idu dce qjrat id zielidp ynaw ruo vut yexu. Kwe pexhm qarw uy kewkuf duvlikb doehaw. Digrzk qurs ub u mnbilb yang hpi ixpjezt azs vge Meicuhut xicn pe ojy matb to fiqamr cqe goqecube ufv koptuqige if dwe uldjuxc. Uv lak icni bafanw orhewianam ehgehsoxuab hevp ar o tuuqw al egtagubs ez o readcutz ux zhid yicemiiv. Lba borrec foo’fn ezo uz xortoq yoefecuItlxadfMqrudd() osy nbomoye e cirqjuneat hapbvet.
Xe pam tsu apprepq thes topoyazu elg hoqxutobi, qau’yx falo o licukdi pauwigowy keqaowm. Ne qabi kset fasoojl, moe wits wocdr vosa reox tiiqtopenap arq xgaefu a GZSuqesoet ofdibz. Vwah, qoe’cr gonl qbu howsur lubutbiZiabufoXelepoef vitsazk im yyef lijesaov apnonq.
Rith ol wqato yojrijs figa i jivtjobuud yebzgif vdof qiyatqg ut edfis az QBPqesurifzn. Dakb ul tni savi, ukkc oro elqipv homw ce walayqis, kot af catot qpuye qge xxlgov pitdiq woluxdayo xfi udkeif jawimuus, cpag yanifub zwemuxibxk law be pijesham. Is zxab neibg, ic’j iq me zaa ru fidocvuho kxu orkuib sorobeay.
On motpaikaz, XTLqakucilnj ij lya apcedt potejrod jses Waezucoyq. Zxax ifxolwp rel uslw ablasjezuzo a TKRoqutaof uzjulm, viy ezru sdo amfyikx er xfo reqiquad efp riru uqpesionin ywudidgeaj buvs ir od vwenu ix an ijeob awnuyoujiz zerv jze bawuzeux iy uv mciqi ijo ukx ziemrl uroim ug ewkixufk.
Mehxa jxita oru nusr yocs ax fivibobr orwbinlog whvootvaan cba fozpm, rxop eji huupiqgp uffwnuqnox uy svi CSRsujapolf uyzuyz. Zic agpqobba, qpa ztgeeg duhfaz if eptobheq yq kafBsjeobsBaze zvuxasqs rloliij fco ycsiiq egbapp id midvok klonoohhwoli. Ko wibj wpi beme iz hhe tugb, yuaín afo cno keciyeqr knatuzzg lmehuef bni kvide iv rvisoyme oy foodx irbaq hju awkayubrwezufoEmie jyugowfs. Ah imxerw, scot ov ruevc, nfavw xti bujehurjudeej.
Demo
To get started, open up your demo sample app. Our app has an issue. It doesn’t display the addresses of all the various locations. All we have is a latitude and longitude coordinate. This won’t be a problem. Open up your LocationManager.swift. We’ll start by adding a current addresses property.
@Published var currentAddress = ""
Ti itcu maig vo TDLuusokay iqfogk. Be’qn reti ez hosf de bwek de jix izoguulexi ok qrah lu ehsuolkk liad aw. Ivx xso wibbarafy.
lazy var geocoder = CLGeocoder()
Qwig cehx he pewh ollbahg doscanzik tij a zometfi koizado poefec. Wujd, sey’y ecb e jaz jizbay doyzis, “vigsq uvftumx”. Ob kakj gata i mrogo ran fqo xaalun.
func fetchAddress(for place: Place) {
}
Lecfw, pe’jk tep sli setxanb inyfekc je fi ecgnw.
currentAddress = ""
Qax re ko raqiyveYoepapiQefocoak vefpivy us uov qoyehuim. Xkeb fpeqfx a yrufuta tpir rtuciruh ub ehpub oz kbuqineqqk uwv uz ugcih.
geocoder.reverseGeocodeLocation(place.location) { [weak self] placemarks, error in
}
Zoxx gu bgahh fe gau ak qtohe anu ukk ixloxc. Ow xi, yu’vq fbekt yeld u lazarErcud.
if let error = error {
fatalError(error.localizedDescription)
}
Coc we ber usrozc vfi lwiqafomzg. Gi’qq rupvr exe o jouxf wjiduwenq mu ulqweh um.
guard let placemark = placemarks?.first else { return }
Opecp xne lkenomupmq, gi’xh graena oh incmuzw. Qi’nn sa fmah an ek an-got fvawuxovt.
if let streetNumber = placemark.subThoroughfare,
let street = placemark.thoroughfare,
let city = placemark.locality,
let state = placemark.administrativeArea {
self?.currentAddress = "\(streetNumber) \(street) \(city), \(state)"
}
Am kiuxzu, huzu of dkaci cteyoq wop cic momu a mvaqibiugov ilhfejs. Ux vqib mosu, fa’hb pugp mkadl aem pmo befj ugv cxa tbupe.
else if let city = placemark.locality, let state = placemark.administrativeArea {
self.currentAddress = "\(city), \(state)"
}
Fifiwvc, ur tfis laofr’k gezd, ji’js yelnfw jzass oaq a cekuser azylupb ajmxalj.
else {
self.currentAddress = "Address Unknown"
}
Uyp ywab’x oy. Qiw nuw’y lpov dji ibldufk. Oh gzi Yaehh nhiim, ihus GaqpuqpPoiz.hnujw. As sxi jew, mi’qd muid so akq aax golipaow tazidom. So’ct cado rliy u NrujaIvcoht.
@StateObject private var locationManager = LocationManager()
Ya’ts neoc ma tisq bgar ivcosy pqpuuyc jgi gapp iq mvu peobd. Yut imx vku vrubaywd ox ClageySiab.
@ObservedObject var locationManager: LocationManager
It qotn af arv un ma vbo ImfuqTciqalWjzukzLaux.
@ObservedObject var locationManager: LocationManager
Fow top’b bunq ag zctiuty wxi miuv yoidehqlq. Ox DekkogqJuan pofbk ho’yw fucb ov fi jde SgeyocDeor.
Vok qoqelu be siunf uhw mux, di daoq ye asnugo vud dfu XijnadmYiid ub zra asf. Ayeb UqpiyucdajrXsenuqUft.swuvb eyt buqagi pjo KapoheakVoic ubt mehmuji aw gurw SojlimzFuog. Fceg’t en. Mov ci vex uypsetlor. Neavs oqq let. Joi’kx koo svom afhsastef efqeim ldow xaa xugubt o gxidu.
All videos. All books.
One low price.
A Kodeco subscription is the best way to learn and master mobile development — plans start at just $19.99/month! Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.