Es kann losgehen!

Bevor Sie mit der Entwicklung beginnen, lesen Sie bitte unsere Entwicklerdokumentation.

Das Google Maps SDK for iOS aktivieren

Zum Einstieg führen wir Sie durch die Google Developers Console, wo Sie vorab Folgendes tun müssen:

  1. Ein Projekt erstellen oder auswählen
  2. Das Google Maps SDK for iOS aktivieren
  3. Zugehörige Schlüssel erstellen
Weiter

Geländeüberlagerungen

Ground Overlays sind Überlagerungen auf einer Karte, die an Breiten-/Längenkoordinaten gebunden sind, sodass sie beim Ziehen oder Vergrößern der Karte verschoben werden.

Einführung

Geländeüberlagerungen sind Bilder, die fest mit einer Karte verbunden sind. Im Gegensatz zu Markern sind Ground Overlays an der Erdoberfläche ausgerichtet und nicht am Bildschirm; das Drehen, Neigen oder Vergrößern der Karte verändert somit die Ausrichtung des Bildes.

Um ein Ground Overlay hinzuzufügen, erstellen Sie ein Objekt GMSGroundOverlay, mit dem ein Symbol und der Begrenzungsrahmen definiert werden. Sie müssen beide angeben, da das Ground Overlay sonst nicht auf der Karte erscheint. Optional können Sie weitere Einstellungen definieren, die sich auf die Positionierung des Bildes auf der Karte auswirken. Nachdem Sie die erforderlichen Optionen definiert haben, legen Sie die Eigenschaft map dieses Objekts fest, um die Überlagerung hinzuzufügen.

Überlagerungen hinzufügen

  1. Instanziieren Sie ein neues Objekt GMSGroundOverlay.
  2. Legen Sie die Eigenschaft icon auf eine Instanz von UIImage fest.
  3. Legen Sie die Eigenschaft bounds auf eine Instanz von GMSCoordinateBounds fest. Als Begrenzungsrahmen werden die südwestliche und die nordöstliche Ecke des Bildes bezeichnet.
  4. Definieren Sie bei Bedarf optionale Eigenschaften, z. B. bearing und zoomLevel.
  5. Legen Sie die Eigenschaft map fest. Das Bild erscheint auf der Karte.

Im nachfolgenden Beispiel wird gezeigt, wie eine Geländeüberlagerung zu einem vorhandenen Objekt GMSMapView hinzugefügt wird.

Swift

let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655)
let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544)
let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
let icon = UIImage(named: "newark_nj_1922")

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView

Objective-C

CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest
                                                                        coordinate:northEast];

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"];
GMSGroundOverlay *overlay =
    [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;

Überlagerungen entfernen

Sie können Ground Overlays aus der Karte entfernen, indem Sie die GMSGroundOverlay-Eigenschaft map auf nil festlegen. Sie können auch alle Überlagerungen (einschließlich Ground Overlays), die sich momentan auf der Karte befinden, entfernen, indem Sie die GMSMapView-Methode clear aufrufen.

Swift

let camera = GMSCameraPosition.camera(withLatitude: 40.71,
                                      longitude: -74.22,
                                      zoom:11)
let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
...
mapView.clear()

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40.742
                                                        longitude:-74.174
                                                             zoom:6];
mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
...
[mapView clear];

Wenn Sie Änderungen an einem Ground Overlay vornehmen möchten, nachdem Sie es zur Karte hinzugefügt haben, achten Sie darauf, das Objekt GMSGroundOverlay aufzubewahren. Sie können das Ground Overlay zu einem späteren Zeitpunkt bearbeiten, indem Sie Änderungen an diesem Objekt vornehmen.

Swift

let overlay = GMSGroundOverlay(position: newark, icon: icon, zoomLevel: 10)
overlay.map = mapView
...
overlay.isTappable = true

Objective-C

GMSGroundOverlay *overlay =
    [GMSGroundOverlay groundOverlayWithPosition:newark
                                           icon:icon
                                      zoomLevel:10];
overlay.map = mapView;
...
overlay.tappable = YES;

Ereignisse

Sie können auf Ereignisse warten, die auf der Karte auftreten, z. B. wenn ein Benutzer auf eine Überlagerung tippt. Dazu müssen Sie das Protokoll GMSMapViewDelegate implementieren. Weitere Informationen dazu erhalten Sie im Leitfaden Ereignisse und in der Liste mit Methoden im GMSMapViewDelegate.

Feedback geben zu...

Google Maps SDK for iOS
Google Maps SDK for iOS