イベントハンドラ
MapConductor は、マップとそのコンポーネントに対するユーザーインタラクションのイベント処理を包括的に提供します。 マップのイベントは MapView コンポーネントで処理し、オーバーレイのイベントは各 State に設定します。
MapView( ..., onMapLoaded: OnMapLoadedHandler? = null, onMapClick: OnMapEventHandler? = null, onMapLongClick: OnMapEventHandler? = null, onCameraMoveStart: OnCameraMoveHandler? = null, onCameraMove: OnCameraMoveHandler? = null, onCameraMoveEnd: OnCameraMoveHandler? = null,) { }マップイベント
マップ初期化
- マップの読み込みが完了し、インタラクションの準備ができたときに呼び出されます。
onMapLoaded: OnMapLoadedHandler? = null- 例
MapView( ... onMapLoaded: { println("Map loaded") },) { ...}マップインタラクション
- ユーザーがマップ(オーバーレイではない部分)をタップしたときに呼び出されます。
onMapClick: OnMapEventHandler? = nullイベントデータ: GeoPointInterface - タップされた地理座標
- 例
MapView( ... onMapClick = { geoPoint -> println("Map clicked at: ${geoPoint.latitude}, ${geoPoint.longitude}") }) { ...}onMapLongClick
- ユーザーがマップ(オーバーレイではない部分)を長押ししたときに呼び出されます。
onMapLongClick: OnMapEventHandler? = nullイベントデータ: GeoPointInterface - 長押しされた地理座標
- 例
MapView( onMapLongClick = { geoPoint -> println("長押しした位置: ${geoPoint.latitude}, ${geoPoint.longitude}") }) { // ...}マーカーイベント
すべてのマーカーイベントは、マーカーの現在の状態を含む MarkerState オブジェクトを受け取ります。
クリックイベント
- マーカーがタップされたときに呼び出されます。
MarkerState( ..., onClick: OnMarkerEventHandler? = null,)- 例
val markerState = MarkerState( ..., onClick = { marker -> println("Marker clicked at: ${marker.position.latitude}, ${marker.position.longitude}") },)
Marker(markerState)ドラッグイベント
onDragStart: ドラッグ開始時に呼び出されますonDrag: ドラッグ中に継続的に呼び出されますonDragEnd: ドラッグ終了時に呼び出されます
MarkerState( ..., onDragStart: OnMarkerEventHandler? = null, onDrag: OnMarkerEventHandler? = null, onDragEnd: OnMarkerEventHandler? = null,)var markerState = MarkerState( ..., draggable = true, onDragStart = { draggedMarker -> println("Drag started: ${draggedMarker.id}") }, onDrag = { draggedMarker -> if (draggedMarker.id == markerState.id) { markerState = markerState.copy(position = draggedMarker.position) } }, onDragEnd = { draggedMarker -> println("Drag ended: ${draggedMarker.id}") },)
Marker(markerState)アニメーションイベント
- マーカーアニメーションの開始時と終了時に呼び出されます。
MarkerState( ..., onAnimateStart: OnMarkerEventHandler? = null, onAnimateEnd: OnMarkerEventHandler? = null,)オーバーレイイベント
円イベント
- 円がタップされたときに呼び出されます。
CircleState( ..., onClick: OnCircleEventHandler? = null,)イベントデータ: CircleEvent
data class CircleEvent( val state: CircleState, val clicked: GeoPointInterface)- 例
Circle( ..., onClick = { event -> println("A circle clicked at: ${event.clicked.latitude}, ${event.clicked.longitude}")
event.state.fillColor = Color.Red.copy( opacity = 0.7f, ) },)ポリラインイベント
- ポリラインがタップされたときに呼び出されます。
PolylineState( ..., onClick: OnPolylineEventHandler? = null,)イベントデータ: PolylineEvent
data class PolylineEvent( val state: PolylineState, val clicked: GeoPointInterface)- 例
Polyline( ..., onClick = { event -> println("A polyline clicked at: ${event.clicked.latitude}, ${event.clicked.longitude}")
event.state.strokeColor = Color.Red },)