Wenn bestimmte erweiterte Markierungseigenschaften festgelegt sind, können Sie Markierungsereignisse wie Tippen und Gesten beobachten. Wenn auf eine Markierung getippt wird, werden zusätzliche Informationen wie ein Markierungstitel oder ein Snippet angezeigt. Ziehbare Markierungen können auch mit einer Geste durch langes Drücken verschoben werden.
- Wenn Sie Markierungsereignisse verfolgen möchten, fügen Sie das
GMSMapViewDelegatezu Ihrerviewhinzu. - Wenn Sie eine Markierung ziehbar machen möchten, legen Sie die
GMSMarker.draggableEigenschaft fest. - Wenn Sie beschreibenden Text für eine Markierung festlegen möchten, verwenden Sie die
GMSMarker.titleEigenschaft.
Auf Markierungsereignisse reagieren
Sie können auf Markierungsereignisse reagieren, indem Sie Ihrer Ansicht
das Protokoll GMSMapViewDelegate hinzufügen und
den entsprechenden Callback implementieren. In diesem Beispiel werden der title und das 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
Wenn Sie die Sichtbarkeit von GMSMarker steuern möchten, implementieren Sie das
GMSMapViewDelegate Protokoll 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 mit einer Geste durch langes Drücken verschieben. Wenn Sie eine Markierung ziehbar machen möchten, legen Sie die Eigenschaft GMSMarker.draggable auf „true“ fest.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;