Wenn bestimmte erweiterte Markierungseigenschaften festgelegt sind, können Sie Markierungsereignisse wie Tippen und Touch-Gesten beobachten. Beim Tippen auf eine Markierung werden zusätzliche Informationen angezeigt, z. B. der Titel oder das Snippet der Markierung. Ziehbare Markierungen können auch durch langes Drücken verschoben werden.
- Wenn Sie Markierungsereignisse verfolgen möchten, fügen Sie
GMSMapViewDelegate
inview
ein. - Um eine Markierung ziehbar zu machen, müssen Sie die Eigenschaft
GMSMarker.draggable
festlegen. - Verwenden Sie die Eigenschaft
GMSMarker.title
, um 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 Callback implementieren. In diesem Beispiel werden title
und snippet
für eine ausgewählte Markierung identifiziert.
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
Implementieren Sie das GMSMapViewDelegate
-Protokoll und fügen Sie eine Bedingung zum Festlegen von GMSMarker.map
hinzu, um die Sichtbarkeit von GMSMarker
zu steuern.
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 durch langes Drücken Markierungen auf der Karte ziehen. Um eine Markierung ziehbar zu machen, muss die Eigenschaft GMSMarker.draggable
auf „true“ gesetzt werden.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;