Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Dodawanie mapy za pomocą znacznika

W tym samouczku pokazujemy, jak dodać mapę Google do aplikacji na iOS. Mapa zawiera znacznik (nazywany też pinezką), który wskazuje konkretną lokalizację.

Pobieram kod

Klonuj lub pobierz przykładowe repozytorium Map Google na iOS z GitHuba.

Konfigurowanie projektu programistycznego

Aby zainstalować Maps SDK na iOS, wykonaj te czynności:

  1. Pobierz i zainstaluj Xcode w wersji 13.0 lub nowszej.
  2. Jeśli nie masz jeszcze CocoaPods, zainstaluj go w systemie macOS, uruchamiając w terminalu to polecenie:
    sudo gem install cocoapods
  3. Skopiuj lub pobierz przykładowe repozytorium Map Google na iOS.
  4. Przejdź do katalogu tutorials/map-with-marker.
  5. Uruchom polecenie pod install. Spowoduje to zainstalowanie interfejsów API określonych w Podfile i wszystkich powiązanych z nimi zależności.
  6. Otwórz 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 Maps SDK na iOS. Kliknij przycisk poniżej, aby uzyskać klucz i aktywować interfejs API.

Rozpocznij

Więcej informacji znajdziesz w artykule dotyczącym uzyskiwania klucza interfejsu API.

Dodawanie klucza interfejsu API do aplikacji

Swift

Dodaj klucz interfejsu API w AppDelegate.swift w ten sposób:

  1. Pamiętaj, że do pliku została dodana ta instrukcja importu:
    import GoogleMaps
  2. Edytuj następujący wiersz w metodzie application(_:didFinishLaunchingWithOptions:), zastępując YOUR_API_KEY Twoim kluczem interfejsu API:
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

Dodaj klucz interfejsu API w AppDelegate.m w ten sposób:

  1. Pamiętaj, że do pliku została dodana ta instrukcja importu:
    @import GoogleMaps;
  2. Edytuj następujący wiersz w metodzie application(_:didFinishLaunchingWithOptions:), zastępując YOUR_API_KEY Twoim kluczem interfejsu API:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

Tworzenie i uruchamianie aplikacji

  1. Podłącz urządzenie z iOS do komputera lub wybierz symulator z menu schematu Xcode.
  2. Jeśli korzystasz z urządzenia, upewnij się, że usługi lokalizacyjne są włączone. Jeśli korzystasz z symulatora, wybierz lokalizację z menu Funkcje.
  3. W Xcode kliknij opcję menu Product/Run (Produkt/Uruchom) (lub ikonę przycisku odtwarzania).

Xcode kompiluje aplikację, a potem uruchamia ją na urządzeniu lub w symulatorze.

Powinna być widoczna mapa ze znacznikiem pośrodku Sydney położona na wschodnim wybrzeżu Australii, podobnie jak na ilustracji na tej stronie.

Rozwiązywanie problemów:

  • Jeśli nie widzisz mapy, sprawdź, czy udało Ci się uzyskać klucz interfejsu API, a następnie dodać go do aplikacji, zgodnie z opisem powyżej. Sprawdź, czy w konsoli debugowania Xcode są komunikaty o błędach dotyczących klucza interfejsu API.
  • Jeśli klucz interfejsu API jest ograniczony według identyfikatora pakietu na iOS, edytuj go, aby dodać identyfikator pakietu dla aplikacji: com.google.examples.map-with-marker.
  • Upewnij się, że masz dobre połączenie z Wi-Fi lub GPS-em.
  • Użyj narzędzi do debugowania Xcode, aby wyświetlić logi i debugować aplikację.

Omówienie kodu

  1. Utwórz mapę i ustaw ją jako widok w 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;
          
  2. Dodaj znacznik do mapy 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, jeśli użytkownik kliknie znacznik, pakiet SDK Map na iOS wyświetli zawartość okna informacyjnego. Nie musisz dodawać odbiornika kliknięć, aby używać domyślnego działania.

Gratulacje! Opracowaliśmy aplikację na iOS, która pokazuje mapę Google ze znacznikiem do określania konkretnej lokalizacji. Wiesz też, jak korzystać z pakietu Maps SDK na iOS.

Dalsze kroki

Dowiedz się więcej o obiekcie mapy i o tym, co możesz zrobić z znacznikami.