Wenn bestimmte erweiterte Markierungseigenschaften festgelegt sind, können Sie Markierungsereignisse wie Tippen und Gesten erfassen. Wenn Sie auf eine Markierung tippen, werden zusätzliche Informationen wie ein Markierungstitel oder ein Snippet angezeigt. Ziehbare Markierungen können auch durch langes Drücken verschoben werden.
- Wenn Sie Markierungsereignisse erfassen möchten, fügen Sie
view
das ZeichenGMSMapViewDelegate
hinzu. - Wenn Sie eine Markierung ziehbar machen möchten, legen Sie die Eigenschaft
GMSMarker.draggable
fest. - Verwenden Sie die Property
GMSMarker.title
, um einen beschreibenden Text für eine Markierung festzulegen.
Auf Markierungsereignisse reagieren
Sie können auf Markierungsereignisse reagieren, indem Sie Ihrer Ansicht das GMSMapViewDelegate
-Protokoll hinzufügen und den entsprechenden Rückruf implementieren. In diesem Beispiel sind die title
und snippet
für eine ausgewählte Markierung zu sehen.
Swift
// MARK: GMSMapViewDelegate func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool { if let title = marker.title { if let snippet = marker.snippet { print("marker title: \(title): snippet: \(snippet)") } } return true }
Objective-C
// MARK: GMSMapViewDelegate - (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker { if (marker.title && marker.snippet) { NSLog(@"marker with title:%@ snippet: %@", marker.title, marker.snippet) } return YES; }
Sichtbarkeit von Markierungen nach Kartenzoomstufe steuern
Wenn Sie die Sichtbarkeit von GMSMarker
steuern möchten, implementieren Sie das Protokoll GMSMapViewDelegate
und fügen Sie eine Bedingung hinzu, um GMSMarker.map
festzulegen.
Swift
// MARK: GMSMapViewDelegate func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) { marker.map = position.zoom >= 14 ? mapView : nil }
Objective-C
// MARK: GMSMapViewDelegate - (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position { marker.map = position.zoom >= 14 ? mapView : nil; }
Markierungen ziehbar machen
Wenn Sie die Eigenschaft draggable
aktivieren, können Nutzer Markierungen auf der Karte durch langes Drücken verschieben. Wenn Sie eine Markierung ziehbar machen möchten, setzen Sie die Eigenschaft GMSMarker.draggable
auf „wahr“.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;