Manejadores de eventos
Los manejadores de eventos del mapa se pasan a cada inicializador de vista de mapa específico del proveedor. No son modificadores de vista SwiftUI.
GoogleMapView( state: mapViewState, onMapLoaded: { state in print("Loaded: \(state.id)") }, onMapClick: { point in print("Clicked: \(point.latitude), \(point.longitude)") }, onCameraMoveStart: { camera in print("Move started: \(camera.zoom)") }, onCameraMove: { camera in print("Moving: \(camera.position)") }, onCameraMoveEnd: { camera in print("Move ended: \(camera.zoom)") }) { Marker( position: GeoPoint(latitude: 35.6812, longitude: 139.7671), onClick: { marker in print("Marker clicked: \(marker.id)") } )}Los mismos argumentos del inicializador están disponibles en GoogleMapView, MapboxMapView, MapKitMapView, MapLibreMapView y ArcGISMapView.
Eventos de marcador
Section titled “Eventos de marcador”Marker y MarkerState admiten estos manejadores:
onClick: (MarkerState) -> VoidonDragStart: (MarkerState) -> VoidonDrag: (MarkerState) -> VoidonDragEnd: (MarkerState) -> VoidonAnimateStart: (MarkerState) -> VoidonAnimateEnd: (MarkerState) -> Void
Marker( position: GeoPoint(latitude: 35.6812, longitude: 139.7671), draggable: true, onClick: { state in print("Clicked marker \(state.id)") }, onDragEnd: { state in print("Dropped at \(state.position)") })Eventos de figuras
Section titled “Eventos de figuras”Los manejadores de clic de figuras se configuran en el inicializador de la superposición o del estado:
Circle( center: GeoPoint(latitude: 35.6812, longitude: 139.7671), radiusMeters: 500, onClick: { event in print("Circle clicked at \(event.clicked)") })
Polyline( points: route, onClick: { event in print("Polyline clicked at \(event.clicked)") })
Polygon( points: polygon, onClick: { event in print("Polygon clicked at \(event.clicked)") })GroundImage también tiene onClick: (GroundImageEvent) -> Void. RasterLayerState define un tipo RasterLayerEvent, pero RasterLayer en sí no expone un inicializador onClick.