[6.5.0][overlay] marker添加点击事件处理
This commit is contained in:
@@ -6,6 +6,7 @@ import android.view.*
|
||||
import androidx.annotation.*
|
||||
import com.mogo.map.overlay.core.*
|
||||
import com.mogo.map.overlay.proxy.point.*
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.*
|
||||
|
||||
data class Point(val id: String, val owner: String, val level: Level, val option: Options) {
|
||||
@@ -149,6 +150,11 @@ data class Point(val id: String, val owner: String, val level: Level, val option
|
||||
* 是否切换到当前marker所在的视角
|
||||
*/
|
||||
val moveToCenter: Boolean = builder.moveToCenter
|
||||
|
||||
/**
|
||||
* marker点击事件处理
|
||||
*/
|
||||
val onClickHandler: WeakReference<((id:String) -> Unit)>? = builder.onMarkerClickListener
|
||||
|
||||
fun builder(): Builder {
|
||||
return builder
|
||||
@@ -280,6 +286,11 @@ data class Point(val id: String, val owner: String, val level: Level, val option
|
||||
*/
|
||||
internal var moveToCenter: Boolean = true
|
||||
|
||||
/**
|
||||
* Marker点击事件回调
|
||||
*/
|
||||
internal var onMarkerClickListener:WeakReference<((id: String) -> Unit)>? = null
|
||||
|
||||
fun setId(id: String) = apply {
|
||||
this.id = id
|
||||
}
|
||||
@@ -411,6 +422,13 @@ data class Point(val id: String, val owner: String, val level: Level, val option
|
||||
this.moveToCenter = flag
|
||||
}
|
||||
|
||||
/**
|
||||
* marker点击事件监听
|
||||
*/
|
||||
fun onClick(listener: ((id: String) -> Unit)) = apply {
|
||||
this.onMarkerClickListener = WeakReference(listener)
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建Options对象
|
||||
*/
|
||||
|
||||
@@ -12,7 +12,9 @@ import com.mogo.map.overlay.wrapper.point.AMapPointWrapper
|
||||
import com.mogo.map.uicontroller.IMogoMapUIController
|
||||
import com.mogo.map.utils.ObjectUtils
|
||||
import com.zhidaoauto.map.sdk.open.renders.marker.BatchMarkerOptions
|
||||
import com.zhidaoauto.map.sdk.open.renders.marker.Marker
|
||||
import com.zhidaoauto.map.sdk.open.renders.marker.MarkerSimpleData
|
||||
import com.zhidaoauto.map.sdk.open.renders.marker.OnMarkClickListener
|
||||
import com.zhidaoauto.map.sdk.open.view.MapAutoView
|
||||
import com.zhidaoauto.map.sdk.open.view.MapAutoViewHelper
|
||||
import mogo.telematics.pad.MessagePad.TrackedObject
|
||||
@@ -54,6 +56,13 @@ class AMapWrapper(map: MapAutoViewHelper?, mapView: MapAutoView, controller: IMo
|
||||
return null
|
||||
}
|
||||
val delegate = mAMap!!.addMarker(markerOptions) ?: return null
|
||||
options.onClickHandler?.get()?.also {
|
||||
delegate.setOnMarkClickListener(object : OnMarkClickListener {
|
||||
override fun onMarkClick(marker: Marker) {
|
||||
it.invoke(marker.getId() ?: "")
|
||||
}
|
||||
})
|
||||
}
|
||||
return AMapPointWrapper(options.id, delegate, mMapView)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user