Dodawanie mapy za pomocą znacznika
W tym samouczku pokazujemy, jak dodać mapę Google do aplikacji na iOS. Zawiera ona znacznik, zwany też pinezką, który wskazuje konkretną lokalizację.
Pobieranie kodu
Skopiuj lub pobierz repozytorium przykładowych Map Google na iOS z GitHuba.
Konfigurowanie projektu programistycznego
Aby zainstalować Maps SDK na iOS, wykonaj te czynności:
- Pobierz i zainstaluj Xcode w wersji 13.0 lub nowszej.
- Jeśli nie masz jeszcze CocoaPods, zainstaluj go w systemie macOS, uruchamiając w terminalu to polecenie:
sudo gem install cocoapods
- Skopiuj lub pobierz przykładowe repozytorium Map Google na iOS.
- Przejdź do katalogu
tutorials/map-with-marker
. - Uruchom polecenie
pod install
. Spowoduje to zainstalowanie interfejsów API określonych w zasadziePodfile
oraz wszystkich ich zależności. - Uruchom
pod outdated
, aby porównać zainstalowaną wersję poda z nowymi aktualizacjami. W przypadku wykrycia nowej wersji uruchompod update
, aby zaktualizowaćPodfile
i zainstalować najnowszy pakiet SDK. Więcej informacji znajdziesz w przewodniku po CocoaPods. - Otwórz (lub kliknij dwukrotnie) plik map-with-marker.xcworkspace projektu, 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, który ma uprawnienia do korzystania z pakietu SDK Map na iOS. Kliknij przycisk poniżej, aby uzyskać klucz i aktywować interfejs API.
RozpocznijWięcej informacji znajdziesz w artykule na temat pobierania klucza interfejsu API.
Dodawanie klucza interfejsu API do aplikacji
Dodaj klucz interfejsu API do urządzenia AppDelegate.swift
w ten sposób:
- Do pliku dodano następującą instrukcję importu:
import GoogleMaps
- Zmodyfikuj następujący wiersz w metodzie
application(_:didFinishLaunchingWithOptions:)
, zastępując klucz YOUR_API_KEY swoim kluczem API:GMSServices.provideAPIKey("YOUR_API_KEY")
Tworzenie i uruchamianie aplikacji
- Podłącz urządzenie z iOS do komputera lub wybierz symulator z menu Xcode.
- Jeśli używasz urządzenia, upewnij się, że usługi lokalizacyjne są włączone. Jeśli używasz symulatora, wybierz lokalizację z menu Funkcje.
- W Xcode kliknij opcję Product/Run (Produkt/uruchom) (lub ikonę przycisku odtwarzania).
- Xcode kompiluje aplikację i uruchamia ją na urządzeniu lub w symulatorze.
- Powinna wyświetlić się mapa ze znacznikiem wyśrodkowanym na Sydney we wschodnim wybrzeżu Australii, podobnie jak na tej stronie.
Rozwiązywanie problemów:
- Jeśli nie widzisz mapy, sprawdź, czy masz klucz interfejsu API i został on dodany do aplikacji (w sposób opisany powyżej). Sprawdź w konsoli debugowania Xcode komunikaty o błędach związane z kluczem interfejsu API.
- Jeśli dostęp do klucza interfejsu API został ograniczony przez identyfikator pakietu na iOS, zmień go, aby dodać identyfikator pakietu dla aplikacji:
com.google.examples.map-with-marker
. - Upewnij się, że masz dobre połączenie Wi-Fi lub GPS.
- Użyj narzędzi do debugowania Xcode, aby wyświetlić logi i debugować aplikację.
Omówienie kodu
- Utwórz mapę i ustaw ją jako widok w usłudze
loadView()
.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 na mapie w:
loadView()
.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, gdy użytkownik kliknie znacznik, pakiet SDK Map na iOS wyświetla zawartość okna informacyjnego. Nie musisz dodawać detektora kliknięć w przypadku znacznika, jeśli chcesz używać domyślnego działania.
Gratulacje! Masz utworzoną aplikację na iOS, która pokazuje mapę Google ze znacznikiem do wskazania konkretnej lokalizacji. Wiesz też, jak korzystać z pakietu SDK Map na iOS.
Dalsze kroki
Dowiedz się więcej o obiektach map i o tym, co możesz zrobić ze znacznikami.