Markierungsereignisse und Gesten

Wenn bestimmte erweiterte Markierungseigenschaften festgelegt sind, können Sie Markierungsereignisse wie Tippen und Gesten überwachen. Wenn Sie auf eine Markierung tippen, werden zusätzliche Informationen wie der Titel oder das Snippet der Markierung angezeigt. Ziehbare Markierungen können auch durch langes Drücken verschoben werden.

  • Wenn Sie Markierungsereignisse erfassen möchten, fügen Sie GMSMapViewDelegate zu Ihrem view hinzu.
  • Um eine Markierung ziehbar zu machen, muss die Eigenschaft GMSMarker.draggable festgelegt werden.
  • 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 Rückruf implementieren. In diesem Beispiel werden title und snippet für eine ausgewählte Markierung angegeben.

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 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 „wahr“ gesetzt werden.

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;