Markierungsereignisse und Gesten

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 Ihr view.
  • 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;