Dodaj mapę ze znacznikiem
Ten samouczek pokazuje, jak dodać do urządzenia z iOS prostą mapę Google ze znacznikiem . Jest odpowiedni dla osób początkujących lub średnio zaawansowanych w języku Swift oraz Objective-C i ogólną znajomość Xcode. Zaawansowany przewodnik tworzenia map, przeczytaj wskazówki programistów Google.
Za pomocą tego samouczka utworzysz następującą mapę. Znacznik znajduje się w Sydney, Australia.
Pobierz kod
Skopiuj lub pobierz plik repozytorium przykładowych Map Google na iOS na GitHubie.
Możesz też kliknąć następujący przycisk, aby pobrać kod źródłowy:
Swift
import UIKit import GoogleMaps class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera) self.view.addSubview(mapView) // Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView } }
Objective-C
#import "ViewController.h" #import <GoogleMaps/GoogleMaps.h> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera]; mapView.myLocationEnabled = YES; [self.view addSubview:mapView]; // Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView; } @end
Rozpocznij
Menedżer pakietów Swift
Pakiet Maps SDK na iOS można zainstalować za pomocą menedżera pakietów Swift.
- Upewnij się, że wszystkie zależności od pakietu Maps SDK na iOS zostały usunięte.
- Otwórz okno terminala i przejdź do katalogu
tutorials/map-with-marker
. -
Zamknij obszar roboczy Xcode i uruchom następujące polecenia:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all rm Podfile rm map-with-marker.xcworkspace
- Otwórz projekt Xcode i usuń plik podfile.
- Przejdź do Plik > Dodaj zależności pakietów.
- Jako URL wpisz https://github.com/googlemaps/ios-maps-sdk, naciśnij Enter, aby pobrać pakiet, i kliknij Dodaj pakiet.
- Może być konieczne zresetowanie pamięci podręcznej pakietów poprzez kliknięcie Plik > Pakiety > Zresetuj pamięć podręczną pakietów.
Używaj CocoaPods
- Pobierz i zainstaluj Xcode wersji 15.0 lub nowszej.
- Jeśli nie masz jeszcze subskrypcji CocoaPods,
zainstaluj ją w systemie macOS, uruchamiając w terminalu to polecenie:
sudo gem install cocoapods
- Przejdź do katalogu
tutorials/map-with-marker
. - Uruchom polecenie
pod install
. Spowoduje to zainstalowanie pakietu Maps SDK określonego w tabeliPodfile
wraz z wszystkimi zależnościami. - Uruchom
pod outdated
, aby porównać wersję zainstalowanego poda z wszystkimi nowymi aktualizacjami. Po wykryciu nowej wersji uruchom poleceniepod update
, aby zaktualizowaćPodfile
i zainstalować najnowszy pakiet SDK. Więcej informacji znajdziesz w przewodniku CocoaPods. - Otwórz (kliknij dwukrotnie) w projekcie plik map-with-marker.xcworkspace
aby otworzyć go w Xcode. Aby otworzyć projekt, musisz użyć pliku
.xcworkspace
.
Uzyskiwanie klucza interfejsu API i włączanie niezbędnych interfejsów API
Aby ukończyć ten samouczek, potrzebujesz klucza interfejsu API Google z uprawnieniami do użyj pakietu Maps SDK na iOS. Kliknij przycisk, aby pobrać: klucz i aktywuj interfejs API.
Pierwsze krokiWięcej informacji: Uzyskaj klucz interfejsu API.
Dodawanie klucza interfejsu API do aplikacji
Dodaj klucz interfejsu API do AppDelegate.swift
w ten sposób:
- Pamiętaj, że do pliku dodano instrukcję importu:
import GoogleMaps
- Edytuj ten wiersz w
application(_:didFinishLaunchingWithOptions:)
, zastępując YOUR_API_KEY Twoim kluczem interfejsu API:GMSServices.provideAPIKey("YOUR_API_KEY")
Tworzenie i uruchamianie aplikacji
- Połącz urządzenie z iOS z komputerem lub wybierz symulator z menu schematu Xcode.
- Jeśli używasz urządzenia, upewnij się, że są włączone usługi lokalizacyjne. Jeśli używasz symulatora, wybierz lokalizację w sekcji Funkcje .
- W Xcode kliknij w menu opcję Product/Run (Produkt/Uruchom). ikonę przycisku).
- Xcode tworzy aplikację, a następnie uruchamia ją na urządzeniu lub w symulatorze.
- Powinna wyświetlić się mapa ze znacznikiem wyśrodkowana na Sydney na wschodnim wybrzeżu Australii, podobnie jak na tej stronie.
Rozwiązywanie problemów:
- Jeśli nie widzisz mapy, sprawdź, czy masz otrzymany klucz interfejsu API oraz do aplikacji, w sposób opisany powyżej. Sprawdź Konsola debugowania Xcode do wyświetlania komunikatów o błędach dotyczących klucza interfejsu API.
- Jeśli klucz API został ograniczony przez identyfikator pakietu na iOS, edytuj
aby dodać identyfikator pakietu aplikacji:
com.google.examples.map-with-marker
- Upewnij się, że masz dobre połączenie z siecią Wi-Fi lub GPS.
- Skorzystaj z narzędzi do debugowania Xcode. aby wyświetlić logi i debugować aplikację.
Zrozumienie kodu
- Utwórz mapę i ustaw ją jako widok w usłudze
viewDidLoad()
.Swift
// Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) view = mapView
Objective-C
// Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6.0]; GMSMapView *mapView = [[GMSMapView alloc] initWithFrame: CGRectZero camera:camera]; self.view = mapView;
- Dodaj znacznik do mapy w usłudze
viewDidLoad()
.Swift
// Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView
Objective-C
// Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView;
Domyślnie pakiet Maps SDK na iOS wyświetla treść informacji gdy użytkownik kliknie znacznik. Nie ma potrzeby dodawania detektora kliknięć wybierz znacznik, jeśli chcesz korzystać z działania domyślnego.
Gratulacje! Masz aplikację na iOS, która wyświetla mapę Google z znacznik w celu wskazania konkretnej lokalizacji. Wiesz już również, jak korzystać z Maps SDK na iOS.
Dalsze kroki
Dowiedz się więcej o obiekcie mapy i działaniach co można zrobić ze znacznikami.