Dodaj mapę

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

Wybierz platformę: Android iOS JavaScript

Mapy są reprezentowane w interfejsie API przez klasę GMSMapView, która jest podklaską UIView. Mapa to najważniejszy obiekt w pakiecie SDK do Map na iOS, który pozwala dodawać, usuwać i zarządzać innymi obiektami, takimi jak znaczniki czy linie łamane.

Wprowadzenie

Maps SDK na iOS umożliwia wyświetlanie mapy Google w Twojej aplikacji. Mapy te wyglądają tak samo jak je wyświetlane w aplikacji Mapy Google na iOS. Pakiet SDK udostępnia wiele tych samych funkcji.

Oprócz funkcji mapowania interfejs API obsługuje także inne interakcje zgodne z modelem interfejsu iOS. Możesz na przykład skonfigurować interakcje z mapą, definiując użytkowników, którzy reagują na gesty użytkowników, takich jak dwukrotne dotknięcie i kliknięcie.

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

  • Łączę z usługą Mapy Google.
  • Pobieranie kafelków mapy.
  • Wyświetlanie kafelków na ekranie urządzenia.
  • wyświetlanie różnych elementów sterujących, takich jak przesuwanie i powiększanie;
  • Reagowanie na gesty przesunięcia i powiększenia przez przesunięcie mapy oraz jej powiększenie lub pomniejszenie.
  • Reakcja na gest 2 palców przechylający kąt patrzenia mapy.

Oprócz tych operacji automatycznych możesz kontrolować działanie i wygląd mapy za pomocą właściwości i metod dostępnych w klasie GMSMapView. GMSMapView pozwala dodawać i usuwać znaczniki, nakładki na teren oraz linie łamane, zmieniać typ wyświetlanej mapy i kontrolować to, co jest na niej wyświetlane, za pomocą klasy GMSCameraPosition.

Twórz mapy za pomocą SwiftUI

SwiftUI to kolejny sposób na tworzenie interfejsu z deklaratywną metodą. Możesz określić, jak SwiftUI ma wyglądać wraz ze wszystkimi różnymi stanami, a system zajmie się resztą. SwiftUI aktualizuje widok po każdej zmianie stanu wywołanej zdarzeniem lub działaniem użytkownika.

Maps SDK na iOS to platforma UIKit, która nie zapewnia jeszcze widoku zgodnego ze SwiftUI. Dodanie map w narzędziu SwiftUI wymaga zgodności z zasadami UIViewRepresentable lub UIViewControllerRepresentable. Więcej informacji znajdziesz w ćwiczeniach z programowania dotyczącym dodawania mapy do aplikacji na iOS za pomocą SwiftUI.

Dodawanie mapy

Podstawowe czynności przy dodawaniu mapy:

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

    1. Konfiguracja w Google Cloud Console

    2. Używanie klucza interfejsu API

    3. Konfigurowanie projektu Xcode

  2. W pliku AppDelegate w interfejsie GMSServices podaj klucz interfejsu API metody metody provideAPIKey:.

  3. Utwórz lub zaktualizuj element ViewController. Jeśli mapa będzie widoczna, gdy kontroler widoku stanie się widoczny, pamiętaj, aby utworzyć go w metodzie loadView.

    1. Utwórz obiekt GMSCameraPosition, który określa środek i poziom powiększenia mapy. Gdy tworzysz wystąpienie obiektu GMSMapView, musisz przekazać obiekt GMSCameraPosition jako wymagany parametr.

    2. Utwórz klasę GMSMapView i utwórz jej instancję przy użyciu metody GMSMapView mapWithFrame:. Jeśli mapa ma być używana jako jedyny kontroler widoku, jako ramki mapy można użyć CGRectZero. Rozmiar mapy zostanie automatycznie zmieniony.

    3. Ustaw obiekt GMSMapView jako widok kontrolera danych, np. self.view = mapView;.

Poniższy przykład dodaje mapę wyśrodkowaną na centrum Singapuru w aplikacji.

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    let mapView = GMSMapView(frame: .zero, camera: camera)
    self.view = mapView
  }
}
      

Objective-C

#import "MapObjects.h"
@import GoogleMaps;

@implementation MapObjects

- (void)viewDidLoad {
  [super viewDidLoad];
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  self.view = mapView;
}

@end
      

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

Co dalej?

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