Wenn bestimmte Eigenschaften für erweiterte Markierungen festgelegt sind, können Sie Markierungsereignisse überwachen etwa Tipp- und Touch-Gesten. Wenn auf eine Markierung getippt wird, werden zusätzliche Informationen angezeigt, z. B. der Titel der Markierung. oder Snippet einfügen. Ziehbare Markierungen können auch durch langes Drücken verschoben werden.
- Fügen Sie zum Erfassen von Markierungsereignissen den
GMSMapViewDelegate
hinzu. auf Ihrview
. - Um eine Markierung ziehbar zu machen, legen Sie den Parameter
GMSMarker.draggable
-Property. - Um beschreibenden Text für eine Markierung festzulegen, verwenden Sie die Methode
GMSMarker.title
-Property.
Auf Markierungsereignisse reagieren
Sie können auf Markierungsereignisse reagieren, indem Sie
GMSMapViewDelegate
-Protokoll zu Ihrer Ansicht hinzufügen
Implementierung des entsprechenden Callbacks. In diesem Beispiel werden die title
und
snippet
für eine ausgewählte Markierung.
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 zum Steuern der Sichtbarkeit von GMSMarker
den
GMSMapViewDelegate
-Protokoll und fügen Sie eine Bedingung hinzu,
GMSMarker.map
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 die draggable
-Eigenschaft aktiviert ist, können Nutzer Markierungen auf der Karte mit
durch langes Drücken. Um eine Markierung ziehbar zu machen, legen Sie den GMSMarker.draggable
fest
auf "true".
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;