Eventi e gesti dell'indicatore

Quando sono impostate proprietà avanzate specifiche degli indicatori, puoi monitorare gli eventi relativi agli indicatori come i tocchi e i gesti. Se tocchi un indicatore, vengono visualizzate informazioni aggiuntive come il titolo o lo snippet di un indicatore. Puoi anche spostare gli indicatori trascinabili premendo a lungo il gesto.

Rispondere agli eventi indicatore

Puoi rispondere agli eventi indicatore aggiungendo il protocollo GMSMapViewDelegate alla visualizzazione e implementando il callback corrispondente. Questo esempio identifica 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;
}

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

Per controllare la visibilità di GMSMarker, implementa il 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;
}

Creare un indicatore trascinabile

Quando attivi la proprietà draggable, gli utenti possono trascinare gli indicatori sulla mappa mediante il 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;