diff --git a/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt index ef4766d..4349c96 100644 --- a/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt @@ -5,10 +5,7 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.CameraPosition -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions +import com.amap.api.maps.model.* import com.casic.smarttube.R import com.casic.smarttube.utils.DialogHelper import com.casic.smarttube.vm.AuthenticateViewModel @@ -17,14 +14,17 @@ import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.showRouteOnMap import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_well_detail.* import kotlinx.android.synthetic.main.include_base_title.* -class WellDetailActivity : KotlinBaseActivity(), AMap.OnMapLoadedListener { +class WellDetailActivity : KotlinBaseActivity(), AMap.OnMapLoadedListener, + AMap.OnMarkerClickListener { private lateinit var wellViewModel: WellViewModel private lateinit var authenticateViewModel: AuthenticateViewModel @@ -58,6 +58,8 @@ //地图加载成功之后调用 aMap.addOnMapLoadedListener(this) + // marker 点击事件监听 + aMap.addOnMarkerClickListener(this) } override fun onMapLoaded() { @@ -73,7 +75,7 @@ * */ val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition) - aMap.animateCamera(newCameraPosition, 3000, object : AMap.CancelableCallback { + aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback { override fun onFinish() { //添加Marker val markerOptions = MarkerOptions() @@ -89,6 +91,37 @@ }) } + override fun onMarkerClick(marker: Marker?): Boolean { + if (marker != null) { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("操作提示") + .setMessage("确定要前往吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val latLng = marker.position + val lat = latLng.latitude.toString() + val lng = latLng.longitude.toString() + if (lat.isBlank() || lng.isBlank()) { + "窨井经纬度异常,无法开启导航".show(this@WellDetailActivity) + return + } + Poi( + marker.snippet, LatLng(lat.toDouble(), lng.toDouble()), "" + ).showRouteOnMap(this@WellDetailActivity) + } + + override fun onCancelClick() { + + } + }).build().show() + } + return true + } + override fun initEvent() { wellViewModel.detailModel.observe(this, { if (it.code == 200) {