diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt new file mode 100644 index 0000000..69daeb3 --- /dev/null +++ b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt @@ -0,0 +1,62 @@ +package com.casic.common.detector.gd.utils + +import android.content.Context +import android.location.Location +import android.util.Log +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption +import com.amap.api.services.core.AMapException +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult +import com.casic.common.detector.gd.callback.OnGetAddressListener +import com.casic.common.detector.gd.callback.OnGetLocationListener + +class LocationKit constructor(context: Context) { + + private val kTag = "LocationKit" + private val locationClient by lazy { AMapLocationClient(context) } + private val codeSearch by lazy { GeocodeSearch(context) } + + fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { + val locationOption = AMapLocationClientOption() + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isOnceLocation = isOnceLocation + locationOption.isNeedAddress = false + locationClient.setLocationOption(locationOption) + locationClient.setLocationListener { + if (it.errorCode == 0) { + listener.onSuccess(it) + } else { + listener.onError() + Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") + } + } + locationClient.startLocation() + } + + fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { + try { + // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 + val query = RegeocodeQuery( + LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP + ) + codeSearch.getFromLocationAsyn(query) + codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { + listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) + } + + override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} + }) + } catch (e: AMapException) { + e.printStackTrace() + } + } + + fun stopLocation() { + locationClient.stopLocation() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt new file mode 100644 index 0000000..69daeb3 --- /dev/null +++ b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt @@ -0,0 +1,62 @@ +package com.casic.common.detector.gd.utils + +import android.content.Context +import android.location.Location +import android.util.Log +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption +import com.amap.api.services.core.AMapException +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult +import com.casic.common.detector.gd.callback.OnGetAddressListener +import com.casic.common.detector.gd.callback.OnGetLocationListener + +class LocationKit constructor(context: Context) { + + private val kTag = "LocationKit" + private val locationClient by lazy { AMapLocationClient(context) } + private val codeSearch by lazy { GeocodeSearch(context) } + + fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { + val locationOption = AMapLocationClientOption() + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isOnceLocation = isOnceLocation + locationOption.isNeedAddress = false + locationClient.setLocationOption(locationOption) + locationClient.setLocationListener { + if (it.errorCode == 0) { + listener.onSuccess(it) + } else { + listener.onError() + Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") + } + } + locationClient.startLocation() + } + + fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { + try { + // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 + val query = RegeocodeQuery( + LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP + ) + codeSearch.getFromLocationAsyn(query) + codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { + listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) + } + + override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} + }) + } catch (e: AMapException) { + e.printStackTrace() + } + } + + fun stopLocation() { + locationClient.stopLocation() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt deleted file mode 100644 index 3f66701..0000000 --- a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.common.detector.gd.utils - -import android.content.Context -import android.location.Location -import android.util.Log -import com.amap.api.location.AMapLocationClient -import com.amap.api.location.AMapLocationClientOption -import com.amap.api.services.core.AMapException -import com.amap.api.services.core.LatLonPoint -import com.amap.api.services.geocoder.GeocodeResult -import com.amap.api.services.geocoder.GeocodeSearch -import com.amap.api.services.geocoder.RegeocodeQuery -import com.amap.api.services.geocoder.RegeocodeResult -import com.casic.common.detector.gd.callback.OnGetAddressListener -import com.casic.common.detector.gd.callback.OnGetLocationListener - -class LocationTool constructor(context: Context) { - - private val kTag = "LocationHub" - private val locationClient by lazy { AMapLocationClient(context) } - private val codeSearch by lazy { GeocodeSearch(context) } - - fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { - val locationOption = AMapLocationClientOption() - locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy - locationOption.isOnceLocation = isOnceLocation - locationOption.isNeedAddress = false - locationClient.setLocationOption(locationOption) - locationClient.setLocationListener { - if (it.errorCode == 0) { - listener.onSuccess(it) - } else { - listener.onError() - Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") - } - } - locationClient.startLocation() - } - - fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { - try { - // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 - val query = RegeocodeQuery( - LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP - ) - codeSearch.getFromLocationAsyn(query) - codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { - listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) - } - - override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} - }) - } catch (e: AMapException) { - e.printStackTrace() - } - } - - fun stopLocation() { - locationClient.stopLocation() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt new file mode 100644 index 0000000..69daeb3 --- /dev/null +++ b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt @@ -0,0 +1,62 @@ +package com.casic.common.detector.gd.utils + +import android.content.Context +import android.location.Location +import android.util.Log +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption +import com.amap.api.services.core.AMapException +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult +import com.casic.common.detector.gd.callback.OnGetAddressListener +import com.casic.common.detector.gd.callback.OnGetLocationListener + +class LocationKit constructor(context: Context) { + + private val kTag = "LocationKit" + private val locationClient by lazy { AMapLocationClient(context) } + private val codeSearch by lazy { GeocodeSearch(context) } + + fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { + val locationOption = AMapLocationClientOption() + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isOnceLocation = isOnceLocation + locationOption.isNeedAddress = false + locationClient.setLocationOption(locationOption) + locationClient.setLocationListener { + if (it.errorCode == 0) { + listener.onSuccess(it) + } else { + listener.onError() + Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") + } + } + locationClient.startLocation() + } + + fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { + try { + // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 + val query = RegeocodeQuery( + LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP + ) + codeSearch.getFromLocationAsyn(query) + codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { + listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) + } + + override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} + }) + } catch (e: AMapException) { + e.printStackTrace() + } + } + + fun stopLocation() { + locationClient.stopLocation() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt deleted file mode 100644 index 3f66701..0000000 --- a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.common.detector.gd.utils - -import android.content.Context -import android.location.Location -import android.util.Log -import com.amap.api.location.AMapLocationClient -import com.amap.api.location.AMapLocationClientOption -import com.amap.api.services.core.AMapException -import com.amap.api.services.core.LatLonPoint -import com.amap.api.services.geocoder.GeocodeResult -import com.amap.api.services.geocoder.GeocodeSearch -import com.amap.api.services.geocoder.RegeocodeQuery -import com.amap.api.services.geocoder.RegeocodeResult -import com.casic.common.detector.gd.callback.OnGetAddressListener -import com.casic.common.detector.gd.callback.OnGetLocationListener - -class LocationTool constructor(context: Context) { - - private val kTag = "LocationHub" - private val locationClient by lazy { AMapLocationClient(context) } - private val codeSearch by lazy { GeocodeSearch(context) } - - fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { - val locationOption = AMapLocationClientOption() - locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy - locationOption.isOnceLocation = isOnceLocation - locationOption.isNeedAddress = false - locationClient.setLocationOption(locationOption) - locationClient.setLocationListener { - if (it.errorCode == 0) { - listener.onSuccess(it) - } else { - listener.onError() - Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") - } - } - locationClient.startLocation() - } - - fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { - try { - // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 - val query = RegeocodeQuery( - LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP - ) - codeSearch.getFromLocationAsyn(query) - codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { - listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) - } - - override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} - }) - } catch (e: AMapException) { - e.printStackTrace() - } - } - - fun stopLocation() { - locationClient.stopLocation() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt index 3129710..450f806 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt @@ -37,7 +37,7 @@ import com.casic.common.detector.gd.service.SerialPortService import com.casic.common.detector.gd.utils.DataBaseManager import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.vm.TaskViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -65,7 +65,7 @@ private val kTag = "InstallMarkerActivity" private val context = this private val calendar by lazy { Calendar.getInstance() } - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val realPaths = ArrayList() //真实图片路径 private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) @@ -383,7 +383,7 @@ bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) } - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { binding.identifierInclude.lngView.text = location.longitude.toString() binding.identifierInclude.latView.text = location.latitude.toString() @@ -541,7 +541,7 @@ override fun onDestroy() { super.onDestroy() - locationTool.stopLocation() + locationKit.stopLocation() unbindService(serviceConnection) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt new file mode 100644 index 0000000..69daeb3 --- /dev/null +++ b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt @@ -0,0 +1,62 @@ +package com.casic.common.detector.gd.utils + +import android.content.Context +import android.location.Location +import android.util.Log +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption +import com.amap.api.services.core.AMapException +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult +import com.casic.common.detector.gd.callback.OnGetAddressListener +import com.casic.common.detector.gd.callback.OnGetLocationListener + +class LocationKit constructor(context: Context) { + + private val kTag = "LocationKit" + private val locationClient by lazy { AMapLocationClient(context) } + private val codeSearch by lazy { GeocodeSearch(context) } + + fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { + val locationOption = AMapLocationClientOption() + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isOnceLocation = isOnceLocation + locationOption.isNeedAddress = false + locationClient.setLocationOption(locationOption) + locationClient.setLocationListener { + if (it.errorCode == 0) { + listener.onSuccess(it) + } else { + listener.onError() + Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") + } + } + locationClient.startLocation() + } + + fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { + try { + // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 + val query = RegeocodeQuery( + LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP + ) + codeSearch.getFromLocationAsyn(query) + codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { + listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) + } + + override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} + }) + } catch (e: AMapException) { + e.printStackTrace() + } + } + + fun stopLocation() { + locationClient.stopLocation() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt deleted file mode 100644 index 3f66701..0000000 --- a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.common.detector.gd.utils - -import android.content.Context -import android.location.Location -import android.util.Log -import com.amap.api.location.AMapLocationClient -import com.amap.api.location.AMapLocationClientOption -import com.amap.api.services.core.AMapException -import com.amap.api.services.core.LatLonPoint -import com.amap.api.services.geocoder.GeocodeResult -import com.amap.api.services.geocoder.GeocodeSearch -import com.amap.api.services.geocoder.RegeocodeQuery -import com.amap.api.services.geocoder.RegeocodeResult -import com.casic.common.detector.gd.callback.OnGetAddressListener -import com.casic.common.detector.gd.callback.OnGetLocationListener - -class LocationTool constructor(context: Context) { - - private val kTag = "LocationHub" - private val locationClient by lazy { AMapLocationClient(context) } - private val codeSearch by lazy { GeocodeSearch(context) } - - fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { - val locationOption = AMapLocationClientOption() - locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy - locationOption.isOnceLocation = isOnceLocation - locationOption.isNeedAddress = false - locationClient.setLocationOption(locationOption) - locationClient.setLocationListener { - if (it.errorCode == 0) { - listener.onSuccess(it) - } else { - listener.onError() - Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") - } - } - locationClient.startLocation() - } - - fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { - try { - // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 - val query = RegeocodeQuery( - LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP - ) - codeSearch.getFromLocationAsyn(query) - codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { - listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) - } - - override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} - }) - } catch (e: AMapException) { - e.printStackTrace() - } - } - - fun stopLocation() { - locationClient.stopLocation() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt index 3129710..450f806 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt @@ -37,7 +37,7 @@ import com.casic.common.detector.gd.service.SerialPortService import com.casic.common.detector.gd.utils.DataBaseManager import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.vm.TaskViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -65,7 +65,7 @@ private val kTag = "InstallMarkerActivity" private val context = this private val calendar by lazy { Calendar.getInstance() } - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val realPaths = ArrayList() //真实图片路径 private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) @@ -383,7 +383,7 @@ bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) } - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { binding.identifierInclude.lngView.text = location.longitude.toString() binding.identifierInclude.latView.text = location.latitude.toString() @@ -541,7 +541,7 @@ override fun onDestroy() { super.onDestroy() - locationTool.stopLocation() + locationKit.stopLocation() unbindService(serviceConnection) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt index b398619..8a60fb2 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt @@ -59,7 +59,7 @@ import com.casic.common.detector.gd.utils.ExcelTool import com.casic.common.detector.gd.utils.FileType import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.utils.RouteOnMap import com.casic.common.detector.gd.vm.TaskViewModel import com.casic.common.detector.gd.widgets.MarkerDetailDialog @@ -98,7 +98,7 @@ private val samplePopupWindow by lazy { SamplePopupWindow(this) } private val backDrawables by lazy { HashMap() } private val detailDialog by lazy { MarkerDetailDialog(this) } - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC).build() @@ -578,7 +578,7 @@ aMap.isMyLocationEnabled = true//设置是否显示定位小蓝点 aMap.setOnMyLocationChangeListener { //经纬度逆编码 - locationTool.antiCodingLocation(it, object : OnGetAddressListener { + locationKit.antiCodingLocation(it, object : OnGetAddressListener { override fun onGetAddress(address: String) { binding.currentLocationView.text = address } @@ -603,7 +603,7 @@ } private fun moveToCurrentLocation() { - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { aMap.moveCamera( CameraUpdateFactory.newLatLngZoom( @@ -911,7 +911,7 @@ soundPool.autoPause() serialPortService?.closeSerialPort() unbindService(serviceConnection) - locationTool.stopLocation() + locationKit.stopLocation() BaseApplication.get().closeSerialPort() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt new file mode 100644 index 0000000..69daeb3 --- /dev/null +++ b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt @@ -0,0 +1,62 @@ +package com.casic.common.detector.gd.utils + +import android.content.Context +import android.location.Location +import android.util.Log +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption +import com.amap.api.services.core.AMapException +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult +import com.casic.common.detector.gd.callback.OnGetAddressListener +import com.casic.common.detector.gd.callback.OnGetLocationListener + +class LocationKit constructor(context: Context) { + + private val kTag = "LocationKit" + private val locationClient by lazy { AMapLocationClient(context) } + private val codeSearch by lazy { GeocodeSearch(context) } + + fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { + val locationOption = AMapLocationClientOption() + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isOnceLocation = isOnceLocation + locationOption.isNeedAddress = false + locationClient.setLocationOption(locationOption) + locationClient.setLocationListener { + if (it.errorCode == 0) { + listener.onSuccess(it) + } else { + listener.onError() + Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") + } + } + locationClient.startLocation() + } + + fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { + try { + // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 + val query = RegeocodeQuery( + LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP + ) + codeSearch.getFromLocationAsyn(query) + codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { + listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) + } + + override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} + }) + } catch (e: AMapException) { + e.printStackTrace() + } + } + + fun stopLocation() { + locationClient.stopLocation() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt deleted file mode 100644 index 3f66701..0000000 --- a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.common.detector.gd.utils - -import android.content.Context -import android.location.Location -import android.util.Log -import com.amap.api.location.AMapLocationClient -import com.amap.api.location.AMapLocationClientOption -import com.amap.api.services.core.AMapException -import com.amap.api.services.core.LatLonPoint -import com.amap.api.services.geocoder.GeocodeResult -import com.amap.api.services.geocoder.GeocodeSearch -import com.amap.api.services.geocoder.RegeocodeQuery -import com.amap.api.services.geocoder.RegeocodeResult -import com.casic.common.detector.gd.callback.OnGetAddressListener -import com.casic.common.detector.gd.callback.OnGetLocationListener - -class LocationTool constructor(context: Context) { - - private val kTag = "LocationHub" - private val locationClient by lazy { AMapLocationClient(context) } - private val codeSearch by lazy { GeocodeSearch(context) } - - fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { - val locationOption = AMapLocationClientOption() - locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy - locationOption.isOnceLocation = isOnceLocation - locationOption.isNeedAddress = false - locationClient.setLocationOption(locationOption) - locationClient.setLocationListener { - if (it.errorCode == 0) { - listener.onSuccess(it) - } else { - listener.onError() - Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") - } - } - locationClient.startLocation() - } - - fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { - try { - // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 - val query = RegeocodeQuery( - LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP - ) - codeSearch.getFromLocationAsyn(query) - codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { - listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) - } - - override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} - }) - } catch (e: AMapException) { - e.printStackTrace() - } - } - - fun stopLocation() { - locationClient.stopLocation() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt index 3129710..450f806 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt @@ -37,7 +37,7 @@ import com.casic.common.detector.gd.service.SerialPortService import com.casic.common.detector.gd.utils.DataBaseManager import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.vm.TaskViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -65,7 +65,7 @@ private val kTag = "InstallMarkerActivity" private val context = this private val calendar by lazy { Calendar.getInstance() } - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val realPaths = ArrayList() //真实图片路径 private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) @@ -383,7 +383,7 @@ bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) } - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { binding.identifierInclude.lngView.text = location.longitude.toString() binding.identifierInclude.latView.text = location.latitude.toString() @@ -541,7 +541,7 @@ override fun onDestroy() { super.onDestroy() - locationTool.stopLocation() + locationKit.stopLocation() unbindService(serviceConnection) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt index b398619..8a60fb2 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt @@ -59,7 +59,7 @@ import com.casic.common.detector.gd.utils.ExcelTool import com.casic.common.detector.gd.utils.FileType import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.utils.RouteOnMap import com.casic.common.detector.gd.vm.TaskViewModel import com.casic.common.detector.gd.widgets.MarkerDetailDialog @@ -98,7 +98,7 @@ private val samplePopupWindow by lazy { SamplePopupWindow(this) } private val backDrawables by lazy { HashMap() } private val detailDialog by lazy { MarkerDetailDialog(this) } - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC).build() @@ -578,7 +578,7 @@ aMap.isMyLocationEnabled = true//设置是否显示定位小蓝点 aMap.setOnMyLocationChangeListener { //经纬度逆编码 - locationTool.antiCodingLocation(it, object : OnGetAddressListener { + locationKit.antiCodingLocation(it, object : OnGetAddressListener { override fun onGetAddress(address: String) { binding.currentLocationView.text = address } @@ -603,7 +603,7 @@ } private fun moveToCurrentLocation() { - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { aMap.moveCamera( CameraUpdateFactory.newLatLngZoom( @@ -911,7 +911,7 @@ soundPool.autoPause() serialPortService?.closeSerialPort() unbindService(serviceConnection) - locationTool.stopLocation() + locationKit.stopLocation() BaseApplication.get().closeSerialPort() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt index ab38185..94e6c46 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt @@ -17,7 +17,7 @@ import com.casic.common.detector.gd.databinding.ActivitySatelliteStatusBinding import com.casic.common.detector.gd.extensions.toDegree import com.casic.common.detector.gd.model.Satellite -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.getScreenHeight @@ -45,7 +45,7 @@ ) private val satelliteCollection = ArrayList() private lateinit var satelliteAdapter: SatelliteRecyclerAdapter - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) @@ -77,7 +77,7 @@ binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) //高德定位 - locationTool.getCurrentLocation(false, object : OnGetLocationListener { + locationKit.getCurrentLocation(false, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { val lng = location.longitude.toDegree() val lat = location.latitude.toDegree() @@ -151,6 +151,6 @@ locationManager.unregisterGnssStatusCallback(gnssStatusListener) locationManager.removeUpdates(this) Log.d(kTag, "onDestroy: 停止卫星信号监听") - locationTool.stopLocation() + locationKit.stopLocation() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt new file mode 100644 index 0000000..69daeb3 --- /dev/null +++ b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt @@ -0,0 +1,62 @@ +package com.casic.common.detector.gd.utils + +import android.content.Context +import android.location.Location +import android.util.Log +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption +import com.amap.api.services.core.AMapException +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult +import com.casic.common.detector.gd.callback.OnGetAddressListener +import com.casic.common.detector.gd.callback.OnGetLocationListener + +class LocationKit constructor(context: Context) { + + private val kTag = "LocationKit" + private val locationClient by lazy { AMapLocationClient(context) } + private val codeSearch by lazy { GeocodeSearch(context) } + + fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { + val locationOption = AMapLocationClientOption() + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isOnceLocation = isOnceLocation + locationOption.isNeedAddress = false + locationClient.setLocationOption(locationOption) + locationClient.setLocationListener { + if (it.errorCode == 0) { + listener.onSuccess(it) + } else { + listener.onError() + Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") + } + } + locationClient.startLocation() + } + + fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { + try { + // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 + val query = RegeocodeQuery( + LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP + ) + codeSearch.getFromLocationAsyn(query) + codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { + listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) + } + + override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} + }) + } catch (e: AMapException) { + e.printStackTrace() + } + } + + fun stopLocation() { + locationClient.stopLocation() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt deleted file mode 100644 index 3f66701..0000000 --- a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.common.detector.gd.utils - -import android.content.Context -import android.location.Location -import android.util.Log -import com.amap.api.location.AMapLocationClient -import com.amap.api.location.AMapLocationClientOption -import com.amap.api.services.core.AMapException -import com.amap.api.services.core.LatLonPoint -import com.amap.api.services.geocoder.GeocodeResult -import com.amap.api.services.geocoder.GeocodeSearch -import com.amap.api.services.geocoder.RegeocodeQuery -import com.amap.api.services.geocoder.RegeocodeResult -import com.casic.common.detector.gd.callback.OnGetAddressListener -import com.casic.common.detector.gd.callback.OnGetLocationListener - -class LocationTool constructor(context: Context) { - - private val kTag = "LocationHub" - private val locationClient by lazy { AMapLocationClient(context) } - private val codeSearch by lazy { GeocodeSearch(context) } - - fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { - val locationOption = AMapLocationClientOption() - locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy - locationOption.isOnceLocation = isOnceLocation - locationOption.isNeedAddress = false - locationClient.setLocationOption(locationOption) - locationClient.setLocationListener { - if (it.errorCode == 0) { - listener.onSuccess(it) - } else { - listener.onError() - Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") - } - } - locationClient.startLocation() - } - - fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { - try { - // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 - val query = RegeocodeQuery( - LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP - ) - codeSearch.getFromLocationAsyn(query) - codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { - listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) - } - - override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} - }) - } catch (e: AMapException) { - e.printStackTrace() - } - } - - fun stopLocation() { - locationClient.stopLocation() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt index 3129710..450f806 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt @@ -37,7 +37,7 @@ import com.casic.common.detector.gd.service.SerialPortService import com.casic.common.detector.gd.utils.DataBaseManager import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.vm.TaskViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -65,7 +65,7 @@ private val kTag = "InstallMarkerActivity" private val context = this private val calendar by lazy { Calendar.getInstance() } - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val realPaths = ArrayList() //真实图片路径 private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) @@ -383,7 +383,7 @@ bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) } - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { binding.identifierInclude.lngView.text = location.longitude.toString() binding.identifierInclude.latView.text = location.latitude.toString() @@ -541,7 +541,7 @@ override fun onDestroy() { super.onDestroy() - locationTool.stopLocation() + locationKit.stopLocation() unbindService(serviceConnection) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt index b398619..8a60fb2 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt @@ -59,7 +59,7 @@ import com.casic.common.detector.gd.utils.ExcelTool import com.casic.common.detector.gd.utils.FileType import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.utils.RouteOnMap import com.casic.common.detector.gd.vm.TaskViewModel import com.casic.common.detector.gd.widgets.MarkerDetailDialog @@ -98,7 +98,7 @@ private val samplePopupWindow by lazy { SamplePopupWindow(this) } private val backDrawables by lazy { HashMap() } private val detailDialog by lazy { MarkerDetailDialog(this) } - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC).build() @@ -578,7 +578,7 @@ aMap.isMyLocationEnabled = true//设置是否显示定位小蓝点 aMap.setOnMyLocationChangeListener { //经纬度逆编码 - locationTool.antiCodingLocation(it, object : OnGetAddressListener { + locationKit.antiCodingLocation(it, object : OnGetAddressListener { override fun onGetAddress(address: String) { binding.currentLocationView.text = address } @@ -603,7 +603,7 @@ } private fun moveToCurrentLocation() { - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { aMap.moveCamera( CameraUpdateFactory.newLatLngZoom( @@ -911,7 +911,7 @@ soundPool.autoPause() serialPortService?.closeSerialPort() unbindService(serviceConnection) - locationTool.stopLocation() + locationKit.stopLocation() BaseApplication.get().closeSerialPort() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt index ab38185..94e6c46 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt @@ -17,7 +17,7 @@ import com.casic.common.detector.gd.databinding.ActivitySatelliteStatusBinding import com.casic.common.detector.gd.extensions.toDegree import com.casic.common.detector.gd.model.Satellite -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.getScreenHeight @@ -45,7 +45,7 @@ ) private val satelliteCollection = ArrayList() private lateinit var satelliteAdapter: SatelliteRecyclerAdapter - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) @@ -77,7 +77,7 @@ binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) //高德定位 - locationTool.getCurrentLocation(false, object : OnGetLocationListener { + locationKit.getCurrentLocation(false, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { val lng = location.longitude.toDegree() val lat = location.latitude.toDegree() @@ -151,6 +151,6 @@ locationManager.unregisterGnssStatusCallback(gnssStatusListener) locationManager.removeUpdates(this) Log.d(kTag, "onDestroy: 停止卫星信号监听") - locationTool.stopLocation() + locationKit.stopLocation() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt index d7499ca..dd2652c 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt @@ -34,7 +34,7 @@ import com.casic.common.detector.gd.service.SerialPortService import com.casic.common.detector.gd.utils.DataBaseManager import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.vm.TaskViewModel import com.casic.common.detector.gd.widgets.RadarScanView import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -58,7 +58,7 @@ private val kTag = "SearchMarkerActivity" private val context = this - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val markerPoints by lazy { ArrayList() } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val sensorManager by lazy { getSystemService() } @@ -99,16 +99,11 @@ val flag = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY) as String isExecuteTask = flag != "0" - //绑定串口通信服务 - Intent(this, SerialPortService::class.java).also { - bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) - } - slowSoundResourceId = soundPool.load(this, R.raw.ring4, 1) fastSoundResourceId = soundPool.load(this, R.raw.ring2, 1) //点位渲染,每次定位都计算当前位置与符合条件的点距离 - locationTool.getCurrentLocation(false, object : OnGetLocationListener { + locationKit.getCurrentLocation(false, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { renderDataPoint(location) } @@ -126,6 +121,11 @@ binding.taskStateView.isSelected = true } + //绑定串口通信服务 + Intent(this, SerialPortService::class.java).also { + bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) + } + //在标识器信号强度很强的时候,从数据库中计算出距离最近的点,以防出现探测不到ID的情况 searchSignalEnergyTimer = Timer() searchSignalEnergyTimer.schedule(object : TimerTask() { @@ -481,7 +481,7 @@ override fun onDestroy() { super.onDestroy() stopSearchMarker() - locationTool.stopLocation() + locationKit.stopLocation() unbindService(serviceConnection) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt new file mode 100644 index 0000000..69daeb3 --- /dev/null +++ b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt @@ -0,0 +1,62 @@ +package com.casic.common.detector.gd.utils + +import android.content.Context +import android.location.Location +import android.util.Log +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption +import com.amap.api.services.core.AMapException +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult +import com.casic.common.detector.gd.callback.OnGetAddressListener +import com.casic.common.detector.gd.callback.OnGetLocationListener + +class LocationKit constructor(context: Context) { + + private val kTag = "LocationKit" + private val locationClient by lazy { AMapLocationClient(context) } + private val codeSearch by lazy { GeocodeSearch(context) } + + fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { + val locationOption = AMapLocationClientOption() + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isOnceLocation = isOnceLocation + locationOption.isNeedAddress = false + locationClient.setLocationOption(locationOption) + locationClient.setLocationListener { + if (it.errorCode == 0) { + listener.onSuccess(it) + } else { + listener.onError() + Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") + } + } + locationClient.startLocation() + } + + fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { + try { + // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 + val query = RegeocodeQuery( + LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP + ) + codeSearch.getFromLocationAsyn(query) + codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { + listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) + } + + override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} + }) + } catch (e: AMapException) { + e.printStackTrace() + } + } + + fun stopLocation() { + locationClient.stopLocation() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt deleted file mode 100644 index 3f66701..0000000 --- a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.common.detector.gd.utils - -import android.content.Context -import android.location.Location -import android.util.Log -import com.amap.api.location.AMapLocationClient -import com.amap.api.location.AMapLocationClientOption -import com.amap.api.services.core.AMapException -import com.amap.api.services.core.LatLonPoint -import com.amap.api.services.geocoder.GeocodeResult -import com.amap.api.services.geocoder.GeocodeSearch -import com.amap.api.services.geocoder.RegeocodeQuery -import com.amap.api.services.geocoder.RegeocodeResult -import com.casic.common.detector.gd.callback.OnGetAddressListener -import com.casic.common.detector.gd.callback.OnGetLocationListener - -class LocationTool constructor(context: Context) { - - private val kTag = "LocationHub" - private val locationClient by lazy { AMapLocationClient(context) } - private val codeSearch by lazy { GeocodeSearch(context) } - - fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { - val locationOption = AMapLocationClientOption() - locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy - locationOption.isOnceLocation = isOnceLocation - locationOption.isNeedAddress = false - locationClient.setLocationOption(locationOption) - locationClient.setLocationListener { - if (it.errorCode == 0) { - listener.onSuccess(it) - } else { - listener.onError() - Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") - } - } - locationClient.startLocation() - } - - fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { - try { - // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 - val query = RegeocodeQuery( - LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP - ) - codeSearch.getFromLocationAsyn(query) - codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { - listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) - } - - override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} - }) - } catch (e: AMapException) { - e.printStackTrace() - } - } - - fun stopLocation() { - locationClient.stopLocation() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt index 3129710..450f806 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt @@ -37,7 +37,7 @@ import com.casic.common.detector.gd.service.SerialPortService import com.casic.common.detector.gd.utils.DataBaseManager import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.vm.TaskViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -65,7 +65,7 @@ private val kTag = "InstallMarkerActivity" private val context = this private val calendar by lazy { Calendar.getInstance() } - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val realPaths = ArrayList() //真实图片路径 private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) @@ -383,7 +383,7 @@ bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) } - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { binding.identifierInclude.lngView.text = location.longitude.toString() binding.identifierInclude.latView.text = location.latitude.toString() @@ -541,7 +541,7 @@ override fun onDestroy() { super.onDestroy() - locationTool.stopLocation() + locationKit.stopLocation() unbindService(serviceConnection) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt index b398619..8a60fb2 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt @@ -59,7 +59,7 @@ import com.casic.common.detector.gd.utils.ExcelTool import com.casic.common.detector.gd.utils.FileType import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.utils.RouteOnMap import com.casic.common.detector.gd.vm.TaskViewModel import com.casic.common.detector.gd.widgets.MarkerDetailDialog @@ -98,7 +98,7 @@ private val samplePopupWindow by lazy { SamplePopupWindow(this) } private val backDrawables by lazy { HashMap() } private val detailDialog by lazy { MarkerDetailDialog(this) } - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC).build() @@ -578,7 +578,7 @@ aMap.isMyLocationEnabled = true//设置是否显示定位小蓝点 aMap.setOnMyLocationChangeListener { //经纬度逆编码 - locationTool.antiCodingLocation(it, object : OnGetAddressListener { + locationKit.antiCodingLocation(it, object : OnGetAddressListener { override fun onGetAddress(address: String) { binding.currentLocationView.text = address } @@ -603,7 +603,7 @@ } private fun moveToCurrentLocation() { - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { aMap.moveCamera( CameraUpdateFactory.newLatLngZoom( @@ -911,7 +911,7 @@ soundPool.autoPause() serialPortService?.closeSerialPort() unbindService(serviceConnection) - locationTool.stopLocation() + locationKit.stopLocation() BaseApplication.get().closeSerialPort() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt index ab38185..94e6c46 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt @@ -17,7 +17,7 @@ import com.casic.common.detector.gd.databinding.ActivitySatelliteStatusBinding import com.casic.common.detector.gd.extensions.toDegree import com.casic.common.detector.gd.model.Satellite -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.getScreenHeight @@ -45,7 +45,7 @@ ) private val satelliteCollection = ArrayList() private lateinit var satelliteAdapter: SatelliteRecyclerAdapter - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) @@ -77,7 +77,7 @@ binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) //高德定位 - locationTool.getCurrentLocation(false, object : OnGetLocationListener { + locationKit.getCurrentLocation(false, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { val lng = location.longitude.toDegree() val lat = location.latitude.toDegree() @@ -151,6 +151,6 @@ locationManager.unregisterGnssStatusCallback(gnssStatusListener) locationManager.removeUpdates(this) Log.d(kTag, "onDestroy: 停止卫星信号监听") - locationTool.stopLocation() + locationKit.stopLocation() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt index d7499ca..dd2652c 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt @@ -34,7 +34,7 @@ import com.casic.common.detector.gd.service.SerialPortService import com.casic.common.detector.gd.utils.DataBaseManager import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.vm.TaskViewModel import com.casic.common.detector.gd.widgets.RadarScanView import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -58,7 +58,7 @@ private val kTag = "SearchMarkerActivity" private val context = this - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val markerPoints by lazy { ArrayList() } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val sensorManager by lazy { getSystemService() } @@ -99,16 +99,11 @@ val flag = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY) as String isExecuteTask = flag != "0" - //绑定串口通信服务 - Intent(this, SerialPortService::class.java).also { - bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) - } - slowSoundResourceId = soundPool.load(this, R.raw.ring4, 1) fastSoundResourceId = soundPool.load(this, R.raw.ring2, 1) //点位渲染,每次定位都计算当前位置与符合条件的点距离 - locationTool.getCurrentLocation(false, object : OnGetLocationListener { + locationKit.getCurrentLocation(false, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { renderDataPoint(location) } @@ -126,6 +121,11 @@ binding.taskStateView.isSelected = true } + //绑定串口通信服务 + Intent(this, SerialPortService::class.java).also { + bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) + } + //在标识器信号强度很强的时候,从数据库中计算出距离最近的点,以防出现探测不到ID的情况 searchSignalEnergyTimer = Timer() searchSignalEnergyTimer.schedule(object : TimerTask() { @@ -481,7 +481,7 @@ override fun onDestroy() { super.onDestroy() stopSearchMarker() - locationTool.stopLocation() + locationKit.stopLocation() unbindService(serviceConnection) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerAuditActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerAuditActivity.kt index 8452ed9..e769fd9 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerAuditActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerAuditActivity.kt @@ -16,7 +16,7 @@ import com.casic.common.detector.gd.databinding.ActivitySearchMarkerAuditBinding import com.casic.common.detector.gd.utils.DataBaseManager import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.widgets.RadarScanView import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.getSystemService @@ -34,7 +34,7 @@ private val kTag = "SearchMarkerActivity" private val context = this - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val sensorManager by lazy { getSystemService() } private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC).build() @@ -50,7 +50,7 @@ val fastSoundResourceId = soundPool.load(this, R.raw.ring2, 1) //点位渲染,每次定位都计算当前位置与符合条件的点距离 - locationTool.getCurrentLocation(false, object : OnGetLocationListener { + locationKit.getCurrentLocation(false, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { renderDataPoint(location) } @@ -186,6 +186,6 @@ super.onDestroy() searchSignalEnergyTimer.cancel() soundPool.release() - locationTool.stopLocation() + locationKit.stopLocation() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt new file mode 100644 index 0000000..69daeb3 --- /dev/null +++ b/app/src/main/java/com/casic/common/detector/gd/utils/LocationKit.kt @@ -0,0 +1,62 @@ +package com.casic.common.detector.gd.utils + +import android.content.Context +import android.location.Location +import android.util.Log +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption +import com.amap.api.services.core.AMapException +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult +import com.casic.common.detector.gd.callback.OnGetAddressListener +import com.casic.common.detector.gd.callback.OnGetLocationListener + +class LocationKit constructor(context: Context) { + + private val kTag = "LocationKit" + private val locationClient by lazy { AMapLocationClient(context) } + private val codeSearch by lazy { GeocodeSearch(context) } + + fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { + val locationOption = AMapLocationClientOption() + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isOnceLocation = isOnceLocation + locationOption.isNeedAddress = false + locationClient.setLocationOption(locationOption) + locationClient.setLocationListener { + if (it.errorCode == 0) { + listener.onSuccess(it) + } else { + listener.onError() + Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") + } + } + locationClient.startLocation() + } + + fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { + try { + // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 + val query = RegeocodeQuery( + LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP + ) + codeSearch.getFromLocationAsyn(query) + codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { + listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) + } + + override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} + }) + } catch (e: AMapException) { + e.printStackTrace() + } + } + + fun stopLocation() { + locationClient.stopLocation() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt b/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt deleted file mode 100644 index 3f66701..0000000 --- a/app/src/main/java/com/casic/common/detector/gd/utils/LocationTool.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.common.detector.gd.utils - -import android.content.Context -import android.location.Location -import android.util.Log -import com.amap.api.location.AMapLocationClient -import com.amap.api.location.AMapLocationClientOption -import com.amap.api.services.core.AMapException -import com.amap.api.services.core.LatLonPoint -import com.amap.api.services.geocoder.GeocodeResult -import com.amap.api.services.geocoder.GeocodeSearch -import com.amap.api.services.geocoder.RegeocodeQuery -import com.amap.api.services.geocoder.RegeocodeResult -import com.casic.common.detector.gd.callback.OnGetAddressListener -import com.casic.common.detector.gd.callback.OnGetLocationListener - -class LocationTool constructor(context: Context) { - - private val kTag = "LocationHub" - private val locationClient by lazy { AMapLocationClient(context) } - private val codeSearch by lazy { GeocodeSearch(context) } - - fun getCurrentLocation(isOnceLocation: Boolean, listener: OnGetLocationListener) { - val locationOption = AMapLocationClientOption() - locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy - locationOption.isOnceLocation = isOnceLocation - locationOption.isNeedAddress = false - locationClient.setLocationOption(locationOption) - locationClient.setLocationListener { - if (it.errorCode == 0) { - listener.onSuccess(it) - } else { - listener.onError() - Log.e(kTag, "ErrCode:${it.errorCode}, errInfo:${it.errorInfo}") - } - } - locationClient.startLocation() - } - - fun antiCodingLocation(location: Location, listener: OnGetAddressListener) { - try { - // 第一个参数表示一个LatLonPoint,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 - val query = RegeocodeQuery( - LatLonPoint(location.latitude, location.longitude), 10f, GeocodeSearch.AMAP - ) - codeSearch.getFromLocationAsyn(query) - codeSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult, i: Int) { - listener.onGetAddress(regeocodeResult.regeocodeAddress.formatAddress) - } - - override fun onGeocodeSearched(geocodeResult: GeocodeResult?, i: Int) {} - }) - } catch (e: AMapException) { - e.printStackTrace() - } - } - - fun stopLocation() { - locationClient.stopLocation() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt index 3129710..450f806 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt @@ -37,7 +37,7 @@ import com.casic.common.detector.gd.service.SerialPortService import com.casic.common.detector.gd.utils.DataBaseManager import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.vm.TaskViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -65,7 +65,7 @@ private val kTag = "InstallMarkerActivity" private val context = this private val calendar by lazy { Calendar.getInstance() } - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val realPaths = ArrayList() //真实图片路径 private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) @@ -383,7 +383,7 @@ bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) } - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { binding.identifierInclude.lngView.text = location.longitude.toString() binding.identifierInclude.latView.text = location.latitude.toString() @@ -541,7 +541,7 @@ override fun onDestroy() { super.onDestroy() - locationTool.stopLocation() + locationKit.stopLocation() unbindService(serviceConnection) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt index b398619..8a60fb2 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt @@ -59,7 +59,7 @@ import com.casic.common.detector.gd.utils.ExcelTool import com.casic.common.detector.gd.utils.FileType import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.utils.RouteOnMap import com.casic.common.detector.gd.vm.TaskViewModel import com.casic.common.detector.gd.widgets.MarkerDetailDialog @@ -98,7 +98,7 @@ private val samplePopupWindow by lazy { SamplePopupWindow(this) } private val backDrawables by lazy { HashMap() } private val detailDialog by lazy { MarkerDetailDialog(this) } - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC).build() @@ -578,7 +578,7 @@ aMap.isMyLocationEnabled = true//设置是否显示定位小蓝点 aMap.setOnMyLocationChangeListener { //经纬度逆编码 - locationTool.antiCodingLocation(it, object : OnGetAddressListener { + locationKit.antiCodingLocation(it, object : OnGetAddressListener { override fun onGetAddress(address: String) { binding.currentLocationView.text = address } @@ -603,7 +603,7 @@ } private fun moveToCurrentLocation() { - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { aMap.moveCamera( CameraUpdateFactory.newLatLngZoom( @@ -911,7 +911,7 @@ soundPool.autoPause() serialPortService?.closeSerialPort() unbindService(serviceConnection) - locationTool.stopLocation() + locationKit.stopLocation() BaseApplication.get().closeSerialPort() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt index ab38185..94e6c46 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SatelliteStatusActivity.kt @@ -17,7 +17,7 @@ import com.casic.common.detector.gd.databinding.ActivitySatelliteStatusBinding import com.casic.common.detector.gd.extensions.toDegree import com.casic.common.detector.gd.model.Satellite -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.getScreenHeight @@ -45,7 +45,7 @@ ) private val satelliteCollection = ArrayList() private lateinit var satelliteAdapter: SatelliteRecyclerAdapter - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } override fun initOnCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) @@ -77,7 +77,7 @@ binding.recyclerView.addItemDecoration(RecyclerViewItemDivider(1, Color.WHITE)) //高德定位 - locationTool.getCurrentLocation(false, object : OnGetLocationListener { + locationKit.getCurrentLocation(false, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { val lng = location.longitude.toDegree() val lat = location.latitude.toDegree() @@ -151,6 +151,6 @@ locationManager.unregisterGnssStatusCallback(gnssStatusListener) locationManager.removeUpdates(this) Log.d(kTag, "onDestroy: 停止卫星信号监听") - locationTool.stopLocation() + locationKit.stopLocation() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt index d7499ca..dd2652c 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt @@ -34,7 +34,7 @@ import com.casic.common.detector.gd.service.SerialPortService import com.casic.common.detector.gd.utils.DataBaseManager import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.vm.TaskViewModel import com.casic.common.detector.gd.widgets.RadarScanView import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -58,7 +58,7 @@ private val kTag = "SearchMarkerActivity" private val context = this - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val markerPoints by lazy { ArrayList() } private val taskViewModel by lazy { ViewModelProvider(this)[TaskViewModel::class.java] } private val sensorManager by lazy { getSystemService() } @@ -99,16 +99,11 @@ val flag = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY) as String isExecuteTask = flag != "0" - //绑定串口通信服务 - Intent(this, SerialPortService::class.java).also { - bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) - } - slowSoundResourceId = soundPool.load(this, R.raw.ring4, 1) fastSoundResourceId = soundPool.load(this, R.raw.ring2, 1) //点位渲染,每次定位都计算当前位置与符合条件的点距离 - locationTool.getCurrentLocation(false, object : OnGetLocationListener { + locationKit.getCurrentLocation(false, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { renderDataPoint(location) } @@ -126,6 +121,11 @@ binding.taskStateView.isSelected = true } + //绑定串口通信服务 + Intent(this, SerialPortService::class.java).also { + bindService(it, serviceConnection, Context.BIND_AUTO_CREATE) + } + //在标识器信号强度很强的时候,从数据库中计算出距离最近的点,以防出现探测不到ID的情况 searchSignalEnergyTimer = Timer() searchSignalEnergyTimer.schedule(object : TimerTask() { @@ -481,7 +481,7 @@ override fun onDestroy() { super.onDestroy() stopSearchMarker() - locationTool.stopLocation() + locationKit.stopLocation() unbindService(serviceConnection) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerAuditActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerAuditActivity.kt index 8452ed9..e769fd9 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerAuditActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerAuditActivity.kt @@ -16,7 +16,7 @@ import com.casic.common.detector.gd.databinding.ActivitySearchMarkerAuditBinding import com.casic.common.detector.gd.utils.DataBaseManager import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.widgets.RadarScanView import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.getSystemService @@ -34,7 +34,7 @@ private val kTag = "SearchMarkerActivity" private val context = this - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private val sensorManager by lazy { getSystemService() } private val attr = AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_ALARM) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC).build() @@ -50,7 +50,7 @@ val fastSoundResourceId = soundPool.load(this, R.raw.ring2, 1) //点位渲染,每次定位都计算当前位置与符合条件的点距离 - locationTool.getCurrentLocation(false, object : OnGetLocationListener { + locationKit.getCurrentLocation(false, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { renderDataPoint(location) } @@ -186,6 +186,6 @@ super.onDestroy() searchSignalEnergyTimer.cancel() soundPool.release() - locationTool.stopLocation() + locationKit.stopLocation() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/common/detector/gd/view/UploadEventActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/UploadEventActivity.kt index 054a810..bfa7af5 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/UploadEventActivity.kt @@ -16,7 +16,7 @@ import com.casic.common.detector.gd.extensions.compressImage import com.casic.common.detector.gd.model.EventModel import com.casic.common.detector.gd.utils.LocaleConstant -import com.casic.common.detector.gd.utils.LocationTool +import com.casic.common.detector.gd.utils.LocationKit import com.casic.common.detector.gd.vm.TaskViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -36,7 +36,7 @@ class UploadEventActivity : KotlinBaseActivity() { private val context: Context = this - private val locationTool by lazy { LocationTool(this) } + private val locationKit by lazy { LocationKit(this) } private lateinit var imageAdapter: EditableImageAdapter private val realPaths: ArrayList = ArrayList() //真实图片路径 private lateinit var taskViewModel: TaskViewModel @@ -82,7 +82,7 @@ binding.uploadTimeView.text = System.currentTimeMillis().timestampToCompleteDate() - locationTool.getCurrentLocation(true, object : OnGetLocationListener { + locationKit.getCurrentLocation(true, object : OnGetLocationListener { override fun onSuccess(location: AMapLocation) { binding.lngView.text = "${location.longitude}" binding.latView.text = "${location.latitude}" @@ -168,6 +168,6 @@ override fun onDestroy() { super.onDestroy() - locationTool.stopLocation() + locationKit.stopLocation() } } \ No newline at end of file