diff --git a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt index 6e5e672..fff6c05 100644 --- a/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/fragment/HomePageFragment.kt @@ -3,7 +3,6 @@ import android.graphics.Point import android.os.Bundle import android.os.CountDownTimer -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -15,13 +14,9 @@ import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.CoordinateConverter -import com.amap.api.maps.model.CameraPosition -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.Marker -import com.amap.api.maps.model.MarkerOptions +import com.amap.api.maps.model.* import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.HomeRecycleAdapter -import com.casic.app.smartwell.base.BaseApplication import com.casic.app.smartwell.model.MapWellListModel import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LocaleConstant @@ -32,7 +27,6 @@ import com.casic.app.smartwell.vm.WellListViewModel import com.casic.app.smartwell.vm.WellViewModel import com.casic.app.smartwell.vm.WorkOrderViewModel -import com.casic.app.smartwell.widgets.GaoDeClusterMarkerView import com.google.android.material.bottomsheet.BottomSheetBehavior import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo @@ -140,11 +134,7 @@ .title(well.wellTypeName) .snippet(well.wellName) ) - } else { - Log.d(kTag, "${well.wellCode}闸井经纬度不在国内,异常经纬度 ===> [${lng},${lat}]") } - } else { - Log.d(kTag, "${well.wellCode}闸井经纬度异常,异常经纬度 ===> [${lng},${lat}]") } } @@ -162,7 +152,7 @@ //计算所有点的中心点位置 val centerLatLng = LatLng(latitudeList.average(), longitudeList.average()) //移动到指定经纬度 - val cameraPosition = CameraPosition(centerLatLng, 12f, 0f, 0f) + val cameraPosition = CameraPosition(centerLatLng, 16f, 0f, 0f) val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(cameraUpdate, 1500, null) } @@ -273,46 +263,57 @@ screenLocation = proj.toScreenLocation(it.position) if (screenLocation.x >= 0 && screenLocation.y >= 0 && screenLocation.x <= dm.widthPixels && screenLocation.y <= dm.heightPixels) { //在当前可观区域内 + /** + * TODO 如果需要地图聚合效果,去掉下一行并放开下面的注释 + * */ + it.icon(BitmapDescriptorFactory.fromBitmap(BitmapDescriptorFactory.fromResource(R.mipmap.well_location).bitmap)) markerOptionsInView.add(it) } } // 自定义的聚合类MarkerCluster - val clustersMarkers: MutableList = ArrayList() +// val clustersMarkers: MutableList = ArrayList() +// markerOptionsInView.forEach { +// if (clustersMarkers.size == 0) { +// //添加一个新的自定义marker +// clustersMarkers.add( +// GaoDeClusterMarkerView(requireContext(), it, proj, LocaleConstant.RADIUS_SIZE) +// ) +// } else { +// var isInRange = false +// //Kotlin foreach不能用break +// for (view in clustersMarkers) { +// //判断当前的marker是否在前面marker的聚合范围内 并且每个marker只会聚合一次。 +// if (view.bounds.contains(it.position)) { +// view.addMarker(it) +// isInRange = true +// break +// } +// } +// //如果没在任何范围内,自己单独形成一个自定义marker。在和后面的marker进行比较 +// if (!isInRange) { +// clustersMarkers.add( +// GaoDeClusterMarkerView( +// requireContext(), it, proj, LocaleConstant.RADIUS_SIZE +// ) +// )//相距多少才聚合 +// } +// } +// } +// // 设置聚合点的位置和icon +// clustersMarkers.forEach { +// it.setPositionAndIcon() +// } +// aMap.clear() +// // 重新添加 marker +// clustersMarkers.forEach { +// aMap.addMarker(it.options) +// } + + /** + * TODO 如果需要地图聚合效果,去掉下面的 + * */ markerOptionsInView.forEach { - if (clustersMarkers.size == 0) { - //添加一个新的自定义marker - clustersMarkers.add( - GaoDeClusterMarkerView(requireContext(), it, proj, LocaleConstant.RADIUS_SIZE) - ) - } else { - var isInRange = false - //Kotlin foreach不能用break - for (view in clustersMarkers) { - //判断当前的marker是否在前面marker的聚合范围内 并且每个marker只会聚合一次。 - if (view.bounds.contains(it.position)) { - view.addMarker(it) - isInRange = true - break - } - } - //如果没在任何范围内,自己单独形成一个自定义marker。在和后面的marker进行比较 - if (!isInRange) { - clustersMarkers.add( - GaoDeClusterMarkerView( - requireContext(), it, proj, LocaleConstant.RADIUS_SIZE - ) - )//相距多少才聚合 - } - } - } - // 设置聚合点的位置和icon - clustersMarkers.forEach { - it.setPositionAndIcon() - } - aMap.clear() - // 重新添加 marker - clustersMarkers.forEach { - aMap.addMarker(it.options) + aMap.addMarker(it) } } @@ -374,7 +375,7 @@ val lat = latLng.latitude.toString() val lng = latLng.longitude.toString() if (lat.isBlank() || lng.isBlank()) { - "窨井经纬度异常,无法开启导航".show(BaseApplication.obtainInstance()) + "窨井经纬度异常,无法开启导航".show(requireContext()) return } RouteOnMap.startNavigation( @@ -383,7 +384,7 @@ } override fun onCancelClick() { - + p0.destroy() } }).build().show() }