Eventi e gesti dell'indicatore

Quando vengono impostate proprietà degli indicatori avanzati, puoi monitorare gli eventi relativi agli indicatori come tocchi e gesti. Se viene toccato un indicatore, è possibile visualizzare ulteriori informazioni, ad esempio il titolo dell'indicatore o snippet. Puoi anche spostare gli indicatori trascinabili con un gesto di pressione prolungata.

Rispondi agli eventi indicatore

Puoi rispondere agli eventi degli indicatori aggiungendo il protocollo GMSMapViewDelegate alla tua vista e con il callback corrispondente. Questo esempio identifica i valori title e snippet per 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;
}

Controllo della visibilità degli indicatori per livello di zoom sulla mappa

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

Rendi trascinabile un indicatore

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

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;