Wenn bestimmte Eigenschaften für erweiterte Markierungen festgelegt sind, können Sie Markierungsereignisse wie Tippen und Touch-Gesten im Blick behalten. Wenn auf eine Markierung getippt wird, werden zusätzliche Informationen wie der Titel oder ein Ausschnitt der Markierung angezeigt. Ziehbare Markierungen können auch durch langes Drücken verschoben werden.
- Wenn Sie Markierungsereignisse erfassen möchten, fügen Sie den
GMSMapViewDelegate
zuview
hinzu. - Wenn eine Markierung ziehbar sein soll, müssen Sie die Eigenschaft
GMSMarker.draggable
festlegen. - Wenn Sie beschreibenden Text für eine Markierung festlegen möchten, verwenden Sie die Eigenschaft
GMSMarker.title
.
Auf Markierungsereignisse reagieren
Wenn Sie auf Markierungsereignisse reagieren möchten, fügen Sie Ihrer Ansicht das Protokoll GMSMapViewDelegate
hinzu und implementieren Sie den entsprechenden Callback. In diesem Beispiel werden die 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 zum Steuern der Sichtbarkeit von GMSMarker
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 die Eigenschaft draggable
aktiviert ist, können Nutzer Markierungen auf der Karte durch langes Drücken 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;