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.
Einführung
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. Wenn Sie die Karte drehen, neigen oder zoomen, ändert sich also die Ausrichtung des Bilds.
Erstellen Sie zum Hinzufügen eines Boden-Overlays ein GMSGroundOverlay
-Objekt, das sowohl ein Symbol als auch Begrenzungen definiert. Wenn Sie keines der beiden Felder angeben, wird das Boden-Overlay nicht auf der Karte angezeigt. Sie können optional weitere Einstellungen angeben, die sich auf die Positionierung des Bildes auf der Karte auswirken. Legen Sie nach dem Definieren der erforderlichen Optionen die Eigenschaft map
dieses Objekts fest, um das Overlay hinzuzufügen.
Overlay hinzufügen
- Instanziiere ein neues
GMSGroundOverlay
-Objekt. - Legen Sie für das Attribut
icon
eine Instanz vonUIImage
fest. - Legen Sie für das Attribut
bounds
eine Instanz vonGMSCoordinateBounds
fest. Die Grenzen stellen die Südwest- und die Nordostecke des Bilds dar. - Legen Sie nach 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
Sie können ein Boden-Overlay von der Karte entfernen, indem Sie die Eigenschaft map
der GMSGroundOverlay
auf nil
setzen. Alternativ können Sie alle Overlays entfernen, einschließlich der Boden-Overlays, die sich derzeit auf der Karte befinden. Dazu rufen Sie die Methode GMSMapView
clear
auf.
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 durch Änderungen an diesem 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 Ereignisse beobachten, die auf der Karte auftreten, z. B. wenn ein Nutzer auf ein Overlay tippt. Wenn Sie Ereignisse beobachten möchten, müssen Sie das Protokoll GMSMapViewDelegate
implementieren. Weitere Informationen finden Sie im Leitfaden zu Ereignissen und in der Liste der Methoden in GMSMapViewDelegate
.