Krok 4: Znajdź mnie przycisk: Pokaż lokalizację na mapie
pierwszy krok, odzyskamy bieżącą lokalizację, gdy użytkownik naciśnie przycisk locate-me 🧭.
menedżer lokalizacji podaje bieżącą lokalizację w obiekcie CLLocationz locationManager.location. Obiekt ten zawiera różne informacje, w tym wartości współrzędnych szerokości i długości geograficznej.
dodaj adnotację do mapy
stwórzmy nową funkcję, która doda adnotację do mapy na podanych współrzędnych.
poniższa funkcja tworzy nowy obiekt MKPointAnnotation i dodaje go do mapy po usunięciu wszystkich poprzednich adnotacji. Powiększa i przewija mapę, aby umieścić nowo dodaną adnotację na środku ekranu.
teraz, gdy mamy tę funkcję, możesz ją wywołać z aktualnymi informacjami o lokalizacji, które chcesz wyświetlić, w przycisku funkcji IBAction. Na razie umieścimy nil jako tytuł, ponieważ nie mamy jeszcze tej informacji.
updateLocationOnMap(to: locationManager.location, with: nil)
Dodaj pełny adres lokalizacji jako tytuł do adnotacji
teraz dodamy pełny adres lokalizacji jako tytuł do adnotacji. CoreLocation daje nam to łatwe do zrobienia z CLGeocoder.
Utwórz rozszerzenie do CLLocation i dodaj następującą funkcję:
odwróci lokalizację geokodu i daje CLPlacemark, zawierający wszystkie informacje potrzebne do wyodrębnienia pełnego adresu pocztowego.
informacje adresowe są przechowywane jak poniżej w obiekcie Placemark. Aby uzyskać wartość ciągową pełnego adresu, będziesz musiał połączyć potrzebne komponenty. Oto przykład adresu siedziby Apple w poniższej tabeli:

dodajmy funkcję do naszego rozszerzenia CLLocation, która bezpośrednio poda nam pełny adres. Dla wygody możesz dodać nową właściwość w rozszerzeniu CLPlacemark. W tym przykładzie właściwość ta nazywa się stringValue.
teraz zaktualizujmy wywołanie do updateLocationOnMap za pomocą naszej nowej funkcji lookUpLocationName.
Zbuduj i uruchom swoją aplikację: teraz po naciśnięciu przycisku locate-me na mapie zostanie dodana Twoja aktualna lokalizacja, wyświetlając pełny adres Twojej bieżącej lokalizacji!
Dodaj znacznik miejsca z adresu łańcucha do mapy
większość funkcji napisanej w Kroku 3 dla przycisku locate-me będzie również używana w tej części. Dodamy tylko nową funkcję updatePlaceMark(to address: String) i wywołamy ją po sprawdzeniu poprawności TextField.
w tej funkcji najpierw otrzymamy znaczniki miejsc z wartości łańcuchowej wprowadzonej przez Użytkownika, następnie zaktualizujemy mapę o pierwszy znacznik miejsca z jego pełną wartością adresu.
zauważ, że geocodeAddressString nie jest funkcją wyszukiwania lokalizacji, więc do jej działania będzie potrzebny poprawny adres i identyfikowalna lokalizacja, miasto, stan lub kraj w polu, aby uzyskać wynik.
Krok 6: Pokaż lokalizację w czasie rzeczywistym na mapie
aby wyświetlić lokalizację w czasie rzeczywistym, dodaj następującą funkcję delegowania w już utworzonym rozszerzeniu CLLocationManagerDelegate.
Menedżer lokalizacji wywoła tę funkcję automatycznie po aktualizacji lokalizacji, zgodnie z zasadami zdefiniowanymi na początku.
Krok 7: Zbuduj& Uruchom
Zbuduj i uruchom aplikację: Teraz masz aplikację mapową, która pokazuje Twoją aktualną lokalizację, wyświetlając pełny adres w czasie rzeczywistym, lokalizując cię po dotknięciu przycisku Znajdź mnie i umożliwiając wyszukiwanie lokalizacji z pola tekstowego.