diff --git a/app/build.gradle b/app/build.gradle index d06afef..7c75cb8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -61,7 +61,6 @@ implementation 'io.github.lucksiege:pictureselector:v3.0.4' //高德地图 implementation 'com.amap.api:3dmap:7.9.1' - implementation 'com.amap.api:location:5.3.1' //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' diff --git a/app/build.gradle b/app/build.gradle index d06afef..7c75cb8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -61,7 +61,6 @@ implementation 'io.github.lucksiege:pictureselector:v3.0.4' //高德地图 implementation 'com.amap.api:3dmap:7.9.1' - implementation 'com.amap.api:location:5.3.1' //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 054b5ce..d2987e8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,11 +8,6 @@ - - - - - @@ -26,8 +21,9 @@ android:theme="@style/QMUI.Compat.NoActionBar" android:usesCleartextTraffic="true"> + @@ -36,7 +32,6 @@ - - - - diff --git a/app/build.gradle b/app/build.gradle index d06afef..7c75cb8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -61,7 +61,6 @@ implementation 'io.github.lucksiege:pictureselector:v3.0.4' //高德地图 implementation 'com.amap.api:3dmap:7.9.1' - implementation 'com.amap.api:location:5.3.1' //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 054b5ce..d2987e8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,11 +8,6 @@ - - - - - @@ -26,8 +21,9 @@ android:theme="@style/QMUI.Compat.NoActionBar" android:usesCleartextTraffic="true"> + @@ -36,7 +32,6 @@ - - - - diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/Constant.kt b/app/src/main/java/com/casic/qd/smartwell/utils/Constant.kt index 894cc50..168f065 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/Constant.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/Constant.kt @@ -14,7 +14,6 @@ const val PAGE_LIMIT = 20 const val FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L const val RADIUS_SIZE = 100 //相距多少米才聚合,单位:米 - const val DISTANCE = 5 //两点间距离阈值,单位:米 val HOME_ICONS = arrayOf( R.drawable.ic_home_map, R.drawable.ic_home_record, R.drawable.ic_home_statistics, diff --git a/app/build.gradle b/app/build.gradle index d06afef..7c75cb8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -61,7 +61,6 @@ implementation 'io.github.lucksiege:pictureselector:v3.0.4' //高德地图 implementation 'com.amap.api:3dmap:7.9.1' - implementation 'com.amap.api:location:5.3.1' //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 054b5ce..d2987e8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,11 +8,6 @@ - - - - - @@ -26,8 +21,9 @@ android:theme="@style/QMUI.Compat.NoActionBar" android:usesCleartextTraffic="true"> + @@ -36,7 +32,6 @@ - - - - diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/Constant.kt b/app/src/main/java/com/casic/qd/smartwell/utils/Constant.kt index 894cc50..168f065 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/Constant.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/Constant.kt @@ -14,7 +14,6 @@ const val PAGE_LIMIT = 20 const val FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L const val RADIUS_SIZE = 100 //相距多少米才聚合,单位:米 - const val DISTANCE = 5 //两点间距离阈值,单位:米 val HOME_ICONS = arrayOf( R.drawable.ic_home_map, R.drawable.ic_home_record, R.drawable.ic_home_statistics, diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt index 43e1317..0a6bad4 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt @@ -1,7 +1,6 @@ package com.casic.qd.smartwell.view import android.graphics.Point -import android.location.Location import android.os.Bundle import android.util.Log import android.view.LayoutInflater @@ -10,7 +9,7 @@ import androidx.lifecycle.ViewModelProvider import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions -import com.amap.api.maps.AMapUtils +import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.CoordinateConverter import com.amap.api.maps.model.* import com.casic.qd.smartwell.R @@ -25,6 +24,8 @@ import com.google.gson.reflect.TypeToken import kotlinx.android.synthetic.main.activity_map.* import kotlinx.android.synthetic.main.include_base_title.* +import java.util.* +import kotlin.collections.ArrayList /** * @author a203 @@ -32,8 +33,8 @@ * @date 2022/2/17 14:33 * @email 290677893@qq.com */ -class MapActivity : BaseActivity(), AMap.OnMapLoadedListener, AMap.OnMyLocationChangeListener, - AMap.OnCameraChangeListener, AMap.OnMarkerClickListener, AMap.InfoWindowAdapter { +class MapActivity : BaseActivity(), AMap.OnMapLoadedListener, AMap.OnCameraChangeListener, + AMap.OnMarkerClickListener, AMap.InfoWindowAdapter { private val kTag = "MapActivity" private val context = this@MapActivity @@ -42,11 +43,6 @@ private lateinit var aMap: AMap /** - * 定位点经纬度 - * */ - private lateinit var location: LatLng - - /** * 所有的marker */ private var allMarkerOptions: MutableList = ArrayList() @@ -87,20 +83,27 @@ } deviceViewModel.mapDeviceResultModel.observe(this, { if (it.code == 200) { + val latitudeList: MutableList = ArrayList() + val longitudeList: MutableList = ArrayList() it.data?.forEach { dataModel -> - deviceModels.add(dataModel) val lat = dataModel.latitude.toString() val lng = dataModel.longitude.toString() if (lat.isNotBlank() && lng.isNotBlank()) { //返回true代表当前位置在大陆、港澳地区,反之不在 - if (CoordinateConverter.isAMapDataAvailable( - lat.toDouble(), lng.toDouble() - ) - ) { + val latitude = lat.toDouble() + val longitude = lng.toDouble() + if (CoordinateConverter.isAMapDataAvailable(latitude, longitude)) { + //缓存所有设备详情,点击Marker时候需要 + deviceModels.add(dataModel) + //分别缓存经、纬度 + latitudeList.add(latitude) + longitudeList.add(longitude) + //将所有设备信息转化缓存为Marker点 allMarkerOptions.add( - MarkerOptions().position( - LatLng(lat.toDouble(), lng.toDouble()) - ).title(dataModel.deviceTypeName).snippet(dataModel.deviceName) + MarkerOptions() + .position(LatLng(latitude, longitude)) + .title(dataModel.deviceTypeName) + .snippet(dataModel.deviceName) ) } else { Log.d(kTag, "${dataModel.devcode}闸井经纬度不在国内,异常经纬度 ===> [${lng},${lat}]") @@ -109,30 +112,26 @@ Log.d(kTag, "${dataModel.devcode}设备经纬度异常,异常经纬度 ===> [${lng},${lat}]") } } + //计算所有点的中心点位置 + val centerLatLng = LatLng(latitudeList.average(), longitudeList.average()) + //移动到指定经纬度 + val cameraPosition = CameraPosition(centerLatLng, 14f, 0f, 0f) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 3000, null) } }) } override fun initEvent() { aMap = mapView.map +// aMap.mapType = AMap.MAP_TYPE_SATELLITE//卫星地图模式 val uiSettings = aMap.uiSettings - uiSettings.isMyLocationButtonEnabled = true//设置默认定位按钮是否显示 uiSettings.isCompassEnabled = true uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 - uiSettings.isRotateGesturesEnabled = false//不许地图随手势旋转角度 - //显示定位小蓝点 - val locationStyle = MyLocationStyle() - //连续定位、蓝点不会移动到地图中心点,定位点依照设备方向旋转,并且蓝点会跟随设备移动 - locationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER) - locationStyle.showMyLocation(true)//设置是否显示定位小蓝点 - aMap.myLocationStyle = locationStyle - aMap.isMyLocationEnabled = true // 地图加载成功监听 aMap.addOnMapLoadedListener(this) - // 位置改变监听 - aMap.addOnMyLocationChangeListener(this) // 地图缩放监听 aMap.addOnCameraChangeListener(this) // marker点击事件监听 @@ -146,12 +145,6 @@ initClustersMarkers() } - override fun onMyLocationChange(p0: Location?) { - if (p0 != null) { - this.location = LatLng(p0.latitude, p0.longitude) - } - } - override fun onCameraChange(p0: CameraPosition?) { } @@ -212,15 +205,8 @@ } override fun onMarkerClick(marker: Marker?): Boolean { - val clickedLatLng = marker?.position - //判断点击点是否是定位点 - val distance = AMapUtils.calculateLineDistance(location, clickedLatLng) - if (distance > Constant.DISTANCE) { - //显示闸井信息 - marker!!.showInfoWindow() - } else { - "该位置是定位点,请选择实际闸井点".show() - } + //显示闸井信息 + marker?.showInfoWindow() return true }