рдлрд┐рд░ рд╕реЗ рдмрдзрд╛рдИ!
рд╕рдмрд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпреИрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрдпрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдВрддреГрдкреНрдд рд╣реИред рдХрд╡рд┐рддрд╛ред рдУрдбреЗред рдпрд╣рд╛рдБ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╣
habr.com/en/post/479102 рд╣реИрдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдмреАрдЪ рдХрд╡рд┐рддрд╛ рдХреЗ рдХреБрдЫ рдкреНрд░реЗрдореА рд╣реИрдВ, рдореИрдВрдиреЗ рдлрд┐рд░ рднреА рд╕реНрдерд┐рддрд┐ рдХреЛ "рд╣рд╛рдмреЛрд░реЛрд╡реНрд╕реНрдХреА" рддрд░реАрдХреЗ рд╕реЗ рд░реЛрд╢рди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдХреЛрдб, рд╡рд┐рдЪрд╛рд░ рдФрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдкрдХрдбрд╝реЛред рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВред

рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдХрд╛рд░реНрдп рддреБрдЪреНрдЫ рд╣реИ:
рдЬрдм рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд┐рдВрджреБ рдкрд░ рддреБрд░рдВрдд "рдмрд╛рд╣рд░ рдирд┐рдЪреЛрдбрд╝рдиреЗ" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ (рдмреЛрдирд╕: рдЖрдкрдХреЛ рд╕рднреА рдЙрдкрд▓рдмреНрдз atibutes рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд░реВрдк рдореЗрдВ рдкрддрд╛ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛)редрд╣рдордиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛: "рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЬреАрддреЗрдВред"рдЗрд╕ рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рддрдХрдиреАрдХреА рдФрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрд░реНрдерд╛рддреН:
0. рдЬрд┐рдпреЛ-рдкреЛрдЬрд┐рд╢рдирд┐рдВрдЧ (MRSG), рдХреЙрд▓рдмреИрдХ рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рдореЙрдбреНрдпреВрд▓ рд╡рд╛рд▓реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдЬрд╛рдПрдВред
1. IWG
1.1 IWG рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ
1.2 IWG рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ
1.2.1 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рез.реи.реи рдЙрд╕рдХреЛ рджреЗрдЦреЛ
2 *ред рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рдирд┐рдпрдВрддреНрд░рдХ (VIPER + рд╡рд┐рдиреНрдпрд╛рд╕рдХ) рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛
extension AddPresenter: AddPresentationLogic {
рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЬрдм рдЖрдк рд╡рд╛рдВрдЫрд┐рдд рдмрд┐рдВрджреБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд▓реМрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ:
protocol YandexMapSetPointViewControllerProtocol { func didSelectPoint(_ place: Place) }
рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ, рд╣рдо рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рднрд╛рдЧ рднреЗрдЬрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдкрд╛рд╕ рдЬрд╛рддреЗ рд╣реИрдВ ...

рдХреЗрдВрджреНрд░ рдореЗрдВ рдХреНрд░реЙрд╕рд╣реЗрдпрд░ рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдФрд░ UIView рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдирдХреНрд╢реЗ рдХреЗ рдЕрдВрджрд░ рдЬрд╝реВрдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдзрд╛рд░рдгрд╛ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреАред рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд┐рдХрд▓рд╛ред
рдмрд╛рдИрдВ рдУрд░ рдФрд░ рдХреНрд░реЙрд╕рд╣реЗрдпрд░ рдХреЗ рдареАрдХ рдиреАрдЪреЗ - рдЙрдЗрд▓рд╛рдмреЗрд▓ред рд╡рд╣рд╛рдВ рдПрдХ рдкрдардиреАрдп рдкрддрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред UIActivityIndicator рдХреЗ рд╕рд╛рде рд░рд╛рдЗрдЯ рдмрдЯрдиред рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд╣реАрдВ рдЖрдП рд╣реИрдВ, рддрдм рддрдХ рд╡рд╣ "рдШреВрдорддрд╛ рд╣реИ" рдФрд░ рдмрдЯрди рдХреЛ рдЧрд╣рд░рд╛ рдФрд░ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкреНрд░рд╛рдкреНрдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рд╣рдо рдЙрд╕реЗ рдХреНрд░реЙрд╕рд╣реЗрдпрд░ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред
рдпрд╣ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдПрдХ рд╕рдВрдХреЗрдд рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИредрд╕рдмрд╕реЗ рдиреАрдЪреЗ "Select Point" рдмрдЯрди рд╣реИред рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХрд╛ рдЬрд╛рджреВ рд╣реЛрддрд╛ рд╣реИ:
@IBAction func selectButtonWasPressed(_ sender: Any) { let place = Place() place.name = " " place.point.latitude = "\(String(describing: selectedPoint!.latitude))" place.point.longitude = "\(String(describing: selectedPoint!.longitude))" place.addressText = selectedPointGeocoderedAddress delegate?.didSelectPoint(place) navigationController?.popViewController(animated: true) }
рд╣реБрд░реНрд░реЗ! рд╣рдордиреЗ рддреИрдпрд╛рд░реА рдХреЗ рдЪрд░рдг рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА!рд╣рдо MRSG рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдиреАрдЪреЗ рдПрдХ рддрд╛рд▓рд┐рдХрд╛-рд╕реНрд╡рд░реВрдкрд┐рдд рдкрд╛рда рд╣реИ рдЬреЛ
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз (рдЙрд╕ рд╕рдордп рдореБрдЭреЗ
www.openstreetmap.org , рдзрдиреНрдпрд╡рд╛рдж,
рдбреИрдЧрд▓реЛ ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдореЗрд░реЗ рдЖрдХрд▓рди (рдлрдЬреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде) рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд┐рд▓реНрдЯ-рдЗрди рдореИрдк рдореЙрдбреНрдпреВрд▓ред

"рдЪреВрдВрдХрд┐ рдХрд╛рд░реНрдп рд╕рд░рд▓ рд╣реИ, рдореИрдВ Yandex.Maps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╡реЗ рд╕реБрдВрджрд░, рдлреБрд░реНрддреАрд▓реЗ рд╣реИрдВ ... тАЭ- рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ред
рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдорд┐рдиреА-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд┐рдЦреЗрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВ -
tech.yandex.ru/maps/mapkit/?from=mapsapi , рдореЗрд░реЗ рдкрде рдХреЗ рдЯреНрд░реИрдХ рдкрд░
рдкрд╣реБрдБрдЪреЗрдВ ред рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдЗрд╕ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдмрд╛рдИрдВ рдУрд░ рдХреЗ рдореЗрдЬрд╝рд░ рд╡рд┐рд╡рд░рдг рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╡рд┐рд╢рд╛рд▓ рд╕реВрдЪреА рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдзрд┐рдХреНрдХрд╛рд░ рд╣реИ рддреБрдореНрд╣рд╛рд░рд╛ рдкреИрд░ред
"рд╢рд╛рдпрдж рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрд░реЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдЧреАред" рдЕрдЪреНрдЫрд╛, рдЕрдЪреНрдЫрд╛ред
рдпрд╣рд╛рдБ рдпрд╣ рдЬрд╛рдирд╡рд░ рд╣реИред
github.com/yandex/mapkit-ios-demoрдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдЕрдкрдиреЗ рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рджреЗрдЦрд╛ред
- рдареАрдХ рд╣реИ, - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ - рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрднрд╡ рд╣реИ, рдЕрдЧрд░ рдореИрдВ рдбреЗрд╡рд▓рдкрд░ рдирд╣реАрдВ рд╣реВрдВред

рдореИрдВрдиреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдорд╛рд░реНрдХрд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рджреЗрдЦрд╛ред
рдореБрдЦреНрдп рдмрд┐рдВрджреБ:
рдПрдХ рд╡рд╕реНрддреБ рд╣реИ:
@IBOutlet weak var mapView: YMKMapView!
"рд╕рдм рдХреБрдЫ рддрд░реНрдХрд╕рдВрдЧрдд рд▓рдЧрддрд╛ рд╣реИ," рдЖрдк рдХрд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдирд╣реАрдВред рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЗ:
func onObjectAdded(with view: YMKUserLocationView) {} func onObjectRemoved(with view: YMKUserLocationView) {} func onObjectUpdated(with view: YMKUserLocationView, event: YMKObjectEvent) {}
рд╣рдореЗрдВ рдЕрддреНрдпрдВрдд рдХрдард┐рди рддрд░реАрдХреЛрдВ рд╕реЗ point.lat рдФрд░ point.long рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
userLocation = YMKPoint(latitude: view.pin.geometry.latitude, longitude: view.pin.geometry.longitude)
рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде 2 рд╕реЗ 50 рд╕реЗрдХрдВрдб рддрдХ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред
"рдЖрдк рдЧрд▓рдд рд╣реИрдВ, рдПрдХ рдХреЗрдВрджреНрд░рд┐рдд рд╕реНрдерд╛рди рдкреНрд░рдмрдВрдзрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП," рдореИрдВрдиреЗ рдЦреБрдж рд╕реЗ рдХрд╣рд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ "рджреЛрд╕реНрдд" рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╣реИ ... рд▓реЗрдХрд┐рди рд╡рд╣ рдХрд╣рд╛рдБ рд╣реИ?
рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдРрд╕реЗ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдЖрд╡реЗрджрди рдХрд╛ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ:

- рдЦреИрд░, рдкреНрд░рд▓реЗрдЦрди, рдХреЗрд╡рд▓ рдЖрдк рдФрд░ рдореИрдВ рд╣реА рдмрдЪреЗ рд╣реИрдВред
- рд╣рд╛рдБ, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, "рдЗрдиреЛрд╡реЗрдЯрд░", рдЖрдирдВрдж рд▓реЗрдВ:

рд╣рдо рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП UIViewController рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╣реИрдВ (рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдХреБрдЫ рднреА рд╕рдордЭрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдареАрдХ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рджреЛрд╕реНрддреЛрдВ):
рдФрд░ ...

1-15 рд╕реЗрдХрдВрдб, CARL! 15! рдХрднреА-рдХрднреА рдпрд╣ рдкрд┐рдЫрд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдРрд╕рд╛ рдХреИрд╕реЗ ??
рдпрд╛рдВрдбреЗрдХреНрд╕, рдХреНрдпрд╛ рдордЬрд╝рд╛рдХ рд╣реИ? рдЗрддрдирд╛ рд╕рдордп рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдареАрдХ рд╣реИ, рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИред
рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рд╕реЛрдЪрд╛ ... рдЦреИрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд╣реА рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рджреЗрдВ рдФрд░ рдЙрд╕реЗ 4 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдкрд░ рдЙрд╕реЗ рдПрдХ рд╕реНрддреВрдк рдореЗрдВ рдбрд╛рд▓ рджреЗрдВ - рдпрд╣ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЖрддреНрдорд╣рддреНрдпрд╛ рд╣реИред рдХреЛрдИ рднреА рдкреВрд░реЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде 5 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдЖрд░рд╛рдорджрд╛рдпрдХ рд╣реИ (рдпрджрд┐ рдЖрдк рдореБрдЭ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпреВрдЖрдИ / рдпреВрдПрдХреНрд╕ рдкрд░ рд╡рд┐рдЯрд╛рд▓реА рдлреНрд░рд┐рдбрдореИрди рдХреА рд░рд┐рдкреЛрд░реНрдЯ рд╕реБрдиреЗрдВ)ред
рдореИрдВрдиреЗ рдФрд░ рд╕реЛрдЪрд╛ ... рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рд╡рдирд╛ рдпрд╣ рдереА:
рдзреНрд╡рдирд┐ рдХреЗ рд╕рд╛рде рдХреМрди рдЪрд╛рд╣рддрд╛ рд╣реИ - www.youtube.com/watch?v=pTZaNHZGsQoрд╕рдлрд▓рддрд╛ рдХрд╛ рдиреБрд╕реНрдЦрд╛ рдпрд╣ рдерд╛:
рдПрдХ
рдХрд┐рд▓реЛ рд▓реЗрдВ
... CLLocationManager рдФрд░ YMKLocationManager рдФрд░ ... рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред

рдпрд╣ рд╕рдВрдпреБрдХреНрдд ... "рдХрд╛рдо" рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
... рдФрд░ рдкрд┐рд▓рд╛рдл рддреИрдпрд╛рд░ рд╣реИрдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдмрд╛рдд рдкрд╛рдиреЗ рдХреА рдЧрддрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо: 0 рд╕реЗрдХрдВрдб рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХред
рдмрд╣реБрдд рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм (рдореЗрд░реА рд░рд╛рдп рдореЗрдВ) рдПрдХ рддреБрдЪреНрдЫ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп, рджреЗрд╢реА рдФрд░ рдПрдореНрдмреЗрдбреЗрдб рднрд╛рдЧреЛрдВ рдХрд╛ рд╡рд┐рд░реЛрдз рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛:

рдЬрд┐рдпреЛрдХреЛрдбрд░ *рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЬрд┐рдпреЛрдХреЛрдбрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред
рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ Yandex
Geocoder tech.yandex.ru/maps/geocoder
рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдореЙрдбрд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдВрд╕рд╛рдзрди рдмрд╣реБрдд рдорджрдж рдХрд░рддрд╛ рд╣реИ:
app.quicktype.io рджреГрд╖реНрдЯрд┐рдЧрдд рдХрд╛рд░реНрдп рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

рдЙрдкрд░реЛрдХреНрдд рд╕рд╛рд░рд╛рдВрд╢:
рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ, рд▓реЗрдЦ рдЗрд╕рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп рдЖрдк рдЙрддрдирд╛ рд╕рдордп рди рдмрд┐рддрд╛рдПрдВ рдЬрд┐рддрдирд╛ рдореИрдВрдиреЗ рдмрд┐рддрд╛рдпрд╛ рдерд╛ рдФрд░ рдпрд╛ рддреЛ рдПрдХ рдЕрд▓рдЧ рд░рд╛рд╕реНрддрд╛ рдЪреБрдиреЗрдВ рдпрд╛ рдЬрд▓реНрджреА рд╕реЗ рдЪрд▓реЗрдВред
рдореИрдВ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдФрд░ / рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ
рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдпрджрд┐ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ, рддреЛ рдореБрдЭреЗ рдПрдХ рд▓реЛрдЗрд╕ рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдХрд░реЗрдВ рдФрд░, рдЕрдзрд┐рдорд╛рдирддрдГ,
рдЗрд╕ рдХрд╣рд╛рдиреА рдХреЗ
рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдПрдХ рдирдП рддрд░реАрдХреЗ рд╕реЗ рджреЗрдЦреЗрдВред
рд╕рднреА рд░рдЪрдирд╛рддреНрдордХ рд╕рдлрд▓рддрд╛ рдФрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдордиреЛрджрд╢рд╛!