Dodawanie mapy

Wybierz platformę: Android iOS JavaScript

Mapy są reprezentowane w interfejsie API przez klasę GMSMapView, podklasę UIView. Mapa jest najważniejszym obiektem w pakiecie Maps SDK na iOS i zapewnia niezbędne metody dodawania i usuwania innych obiektów, takich jak znaczniki i linie łamane, oraz zarządzania nimi.

Wstęp

Maps SDK na iOS pozwala wyświetlać mapę Google w aplikacji na iOS. Mają one taki sam wygląd jak mapy w aplikacji Mapy Google na iOS, a pakiet SDK udostępnia wiele tych samych funkcji.

Oprócz funkcji mapowania interfejs API obsługuje również zakres interakcji, które są zgodne z modelem interfejsu iOS. Możesz np. skonfigurować interakcje z mapą, definiując użytkowników, którzy reagują na gesty użytkowników, takie jak klikanie i dwukrotne dotknięcie.

Klasa klucza podczas pracy z obiektem Map to klasa GMSMapView. GMSMapView automatycznie obsługuje te operacje:

  • Łączę z usługą Mapy Google.
  • Pobieram fragmenty mapy.
  • Wyświetlam kafelki na ekranie urządzenia.
  • Wyświetlanie różnych elementów sterujących, takich jak przesuwanie i powiększanie.
  • Reagowanie na gesty przesuwania i powiększania przez przesuwanie mapy oraz powiększanie i pomniejszanie.
    • Reagowanie na gesty 2 palcami przez przechylanie mapy.

Oprócz tych automatycznych operacji możesz kontrolować działanie i wygląd mapy za pomocą właściwości i metod udostępnianych przez klasę GMSMapView. GMSMapView umożliwia dodawanie i usuwanie znaczników, nakładek na powierzchni i linii łamanych, zmienianie typu wyświetlanej mapy i kontrolowania tego, co jest widoczne na mapie, za pomocą klasy GMSCameraPosition.

Twórz mapy za pomocą SwiftUI

SwiftUI oferuje dodatkowy sposób tworzenia UI za pomocą metody deklaratywnej. Określisz w SwiftUI, jak ma wyglądać widok i jego stany, a system zajmuje się resztą. SwiftUI zajmuje się aktualizowaniem widoku za każdym razem, gdy zmieni się podstawowy stan w wyniku zdarzenia lub działania użytkownika.

Maps SDK na iOS opiera się na platformie UIKit i nie zapewnia widoku zgodnego z SwiftUI. Dodawanie map w SwiftUI wymaga spełnienia wymagań UIViewRepresentable lub UIViewControllerRepresentable. Więcej informacji znajdziesz w ćwiczeniach z programowania na temat dodawania mapy do aplikacji na iOS za pomocą SwiftUI.

Dodawanie mapy

Podstawowe kroki, które należy wykonać, aby dodać mapę:

  1. Aby pobrać pakiet SDK, uzyskaj klucz interfejsu API i dodaj wymagane platformy, wykonaj te czynności:

    1. Skonfiguruj w konsoli Google Cloud

    2. Używanie klucza interfejsu API

    3. Konfigurowanie projektu Xcode

    4. W AppDelegate podaj klucz interfejsu API dla metody klasy provideAPIKey: w GMSServices.

    5. Utwórz lub zaktualizuj ViewController. Jeśli mapa jest wyświetlana, gdy ten kontroler widoku danych staje się widoczny, utwórz ją w metodzie viewDidLoad.

    6. Podczas inicjowania widoku mapy ustaw opcje konfiguracji za pomocą GMSMapViewOptions. Do usług należą frame, camera, mapID,backgroundColor i screen.

    7. Ustaw właściwość camera opcji mapy za pomocą obiektu GMSCameraPosition. To ustawienie określa środkowy i poziom powiększenia mapy.

    8. Utwórz i utwórz instancję klasy GMSMapView za pomocą metody GMSMapView options:. Jeśli ta mapa ma być używana jako jedyny widok kontrolera widoku, jako widok frame może być używana domyślna wartość CGRectZero opcji mapy frame – rozmiar mapy jest zmieniany automatycznie.

    9. Ustaw obiekt GMSMapView jako widok kontrolera widoku. Przykład: self.view = mapView;.

W poniższym przykładzie dodaje się do aplikacji mapę wyśrodkowaną na centrum Singapuru.

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()

    let options = GMSMapViewOptions()
    options.camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    options.frame = self.view.bounds;

    let mapView = GMSMapView(options:options)
    self.view = mapView
  }
}

Objective-C

- (void)viewDidLoad {
  [super viewDidLoad];

  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                        longitude:103.848
                                                             zoom:12];
  options.frame = self.view.bounds;

  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  self.view = mapView;
}

Po wykonaniu tych czynności możesz jeszcze bardziej skonfigurować obiekt GMSMapView.

Co dalej

Po wykonaniu tych czynności możesz skonfigurować ustawienia mapy.