Eventi e gesti dell'indicatore

Quando vengono impostate proprietà avanzate specifiche degli indicatori, puoi monitorare gli eventi degli indicatori come tocchi e gesti. Se tocchi un indicatore, puoi visualizzare informazioni aggiuntive, come il titolo o lo snippet dell'indicatore. Puoi anche spostare gli indicatori trascinabili utilizzando un gesto di pressione prolungata.

  • Per monitorare gli eventi degli indicatori, aggiungi GMSMapViewDelegate alla view.
  • Per rendere trascinabile un indicatore, imposta la GMSMarker.draggable proprietà.
  • Per impostare il testo descrittivo di un indicatore, utilizza la GMSMarker.title proprietà.

Rispondere agli eventi degli indicatori

Puoi rispondere agli eventi degli indicatori aggiungendo il protocollo GMSMapViewDelegate alla visualizzazione e implementando il callback corrispondente. Questo esempio identifica il title e lo snippet di un indicatore selezionato.

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;
}

Controllare la visibilità degli indicatori in base al livello di zoom della mappa

Per controllare la visibilità di GMSMarker, implementa il GMSMapViewDelegate protocollo e aggiungi una condizione per impostare 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;
}

Rendere trascinabile un indicatore

Quando abiliti la proprietà draggable, gli utenti possono trascinare gli indicatori sulla mappa con un gesto di pressione prolungata. Per rendere trascinabile un indicatore, imposta la proprietà GMSMarker.draggable su true.

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;