Markierungsereignisse und Gesten

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 in view 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;