Boden-Overlays sind Overlays auf der Karte, die an Breiten- und Längengrad gebunden sind, sodass sie sich beim Ziehen und Zoomen der Karte mitbewegen.
Einführung
Ein Boden-Overlay ist ein Bild, das auf einer Karte fixiert ist. Im Unterschied zu Markierungen sind Boden-Overlays auf die Erdoberfläche und nicht auf den Bildschirm ausgerichtet. Deshalb wirkt sich das Drehen, Neigen oder Zoomen der Karte auf die Ausrichtung des Bilds aus.
Erstellen Sie zum Hinzufügen eines Boden-Overlays ein GMSGroundOverlay
-Objekt, das sowohl ein Symbol als auch Grenzen definiert. Ohne Angabe eines der beiden Felder wird das Boden-Overlay nicht auf der Karte angezeigt. Optional können Sie weitere Einstellungen festlegen, die die Positionierung des Bildes auf der Karte beeinflussen. Nachdem Sie die erforderlichen Optionen definiert haben, legen Sie das Attribut map
dieses Objekts fest, um das Overlay hinzuzufügen.
Overlay hinzufügen
- Instanziiere 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üdwestliche und die nordöstliche Ecke des Bildes dar. - Legen Sie bei Bedarf optionale Attribute wie
bearing
undzoomLevel
fest. - Legen Sie die Eigenschaft
map
fest. Das Bild wird auf der Karte angezeigt.
Im folgenden Beispiel siehst du, 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
Du kannst ein Boden-Overlay von der Karte entfernen, indem du die map
-Eigenschaft von GMSGroundOverlay
auf nil
setzt. Alternativ können Sie alle Overlays, einschließlich Boden-Overlays, durch Aufrufen der Methode GMSMapView
clear
entfernen.
Swift
mapView.clear()
Objective-C
[mapView clear];
Wenn Sie ein Boden-Overlay nach dem Hinzufügen zur Karte ändern möchten, müssen Sie das GMSGroundOverlay
-Objekt beibehalten. Sie können das Boden-Overlay später mithilfe dieses Objekts ä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;
Events
Sie können Ereignisse erfassen, die auf der Karte auftreten, z. B. wenn ein Nutzer auf ein Overlay tippt. Zum Überwachen von Ereignissen müssen Sie das Protokoll GMSMapViewDelegate
implementieren. Weitere Informationen finden Sie im Leitfaden zu Ereignissen und in der Liste der Methoden in GMSMapViewDelegate
.