Wenn bestimmte erweiterte Markierungseigenschaften festgelegt sind, können Sie Markierungselemente wie Taps und Gesten beobachten. Wenn auf eine Markierung getippt wird, können zusätzliche Informationen wie ein Markierungstitel oder ein Snippet angezeigt werden. Verschiebbare Markierungen lassen sich auch durch langes Drücken verschieben.
- Wenn Sie Markierungsereignisse erfassen möchten, fügen Sie
GMSMapViewDelegate
in Ihreview
ein. - Um eine Markierung ziehbar zu machen, müssen Sie die Eigenschaft
GMSMarker.draggable
festlegen. - Um beschreibenden Text für eine Markierung festzulegen, verwenden Sie das Attribut
GMSMarker.title
.
Auf Markierungsereignisse reagieren
Sie können auf Markierungsereignisse reagieren, indem Sie das Protokoll GMSMapViewDelegate
zu Ihrer Ansicht hinzufügen und den entsprechenden Callback implementieren. In diesem Beispiel werden die title
und snippet
für eine ausgewählte Markierung ermittelt.
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
Um die Sichtbarkeit von GMSMarker
zu steuern, 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 draggable
-Eigenschaft aktivieren, können Nutzer Markierungen auf der Karte durch langes Drücken verschieben. Um eine Markierung ziehbar zu machen, muss die Eigenschaft GMSMarker.draggable
auf „true“ gesetzt werden.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;