Boden-Overlays sind Overlays auf der Karte, die an Breiten- und Längengrad gebunden sind, sodass sie sich beim Ziehen oder Zoomen der Karte mitbewegen.
Einleitung
Ein Boden-Overlay ist ein Bild, das auf einer Karte fixiert ist. Im Gegensatz zu Markierungen sind Boden-Overlays auf die Erdoberfläche und nicht auf den Bildschirm ausgerichtet. Daher wirkt sich das Drehen, Neigen oder Zoomen der Karte auf die Ausrichtung des Bildes aus.
Wenn Sie ein Boden-Overlay hinzufügen möchten, erstellen Sie ein GMSGroundOverlay
-Objekt, das sowohl ein Symbol als auch Grenzen definiert. Andernfalls wird das Boden-Overlay nicht auf der Karte angezeigt. Optional können Sie zusätzliche Einstellungen angeben, die die Positionierung des Bildes auf der Karte beeinflussen. Nachdem du die erforderlichen Optionen definiert hast, lege die map
-Eigenschaft dieses Objekts fest, um das Overlay hinzuzufügen.
Overlay hinzufügen
- Instanziieren Sie ein neues
GMSGroundOverlay
-Objekt. - Legen Sie das Attribut
icon
auf eine Instanz vonUIImage
fest. - Legen Sie das Attribut
bounds
auf eine Instanz vonGMSCoordinateBounds
fest. Die Begrenzungen stellen die Südwest- und die Nordostecke des Bilds dar. - Legen Sie bei Bedarf optionale Eigenschaften wie
bearing
undzoomLevel
fest. - Lege die
map
-Eigenschaft fest. Das Bild wird auf der Karte angezeigt.
Im folgenden Beispiel sehen Sie, wie ein Boden-Overlay einem vorhandenen GMSMapView
-Objekt 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;
Overlay entfernen
Sie können ein Boden-Overlay von der Karte entfernen, indem Sie die Eigenschaft map
von GMSGroundOverlay
auf nil
setzen. Alternativ können Sie alle Overlays entfernen, einschließlich Boden-Overlays, die sich derzeit auf der Karte befinden. Dazu rufen Sie die GMSMapView
-Methode clear
auf.
Swift
mapView.clear()
Objective-C
[mapView clear];
Wenn Sie ein Boden-Overlay ändern möchten, nachdem Sie es der Karte hinzugefügt haben, muss das Objekt GMSGroundOverlay
beibehalten werden. Sie können das Boden-Overlay später über dieses Objekt ändern.
Swift
let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView // ... overlay.isTappable = true
Objective-C
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView; // ... overlay.tappable = YES;
Veranstaltungen
Sie können auf Ereignisse warten, die auf der Karte auftreten, z. B. wenn ein Nutzer auf ein Overlay tippt. Wenn Sie auf Ereignisse warten möchten, müssen Sie das GMSMapViewDelegate
-Protokoll implementieren. Weitere Informationen finden Sie im Leitfaden zu Ereignissen und in der Liste der Methoden zur GMSMapViewDelegate
.