|
@@ -921,52 +921,66 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
|
921
|
921
|
|
922
|
922
|
private fun baiduLocation(){
|
923
|
923
|
LocationClient.setAgreePrivacy(true)
|
924
|
|
- locationClient = LocationClient(application)
|
925
|
|
- val option = LocationClientOption()
|
926
|
|
- option.locationMode=LocationClientOption.LocationMode.Hight_Accuracy
|
927
|
|
- option.setCoorType("bd09ll")
|
928
|
|
- option.setFirstLocType(LocationClientOption.FirstLocType.ACCURACY_IN_FIRST_LOC)
|
929
|
|
- option.setScanSpan(1000*60*5)
|
930
|
|
- option.setOpenGnss(true)
|
931
|
|
- option.setLocationNotify(true)
|
932
|
|
- option.setEnableSimulateGnss(false)
|
933
|
|
- option.setNeedNewVersionRgc(true)
|
934
|
|
- option.setIsNeedAddress(true)
|
935
|
|
- locationClient?.locOption=option
|
936
|
|
- locationClient?.registerLocationListener(object :BDAbstractLocationListener(){
|
937
|
|
- override fun onReceiveLocation(bdLocation: BDLocation) {
|
938
|
|
- //此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果
|
939
|
|
- val latitude: Double = bdLocation.getLatitude() //获取纬度信息
|
940
|
|
-
|
941
|
|
- val longitude: Double = bdLocation.getLongitude() //获取经度信息
|
942
|
|
- val addrStr = bdLocation.addrStr
|
943
|
|
- val location = PadLocationConst.currentLocation
|
944
|
|
- location.lat=latitude
|
945
|
|
- location.lon=longitude
|
946
|
|
- location.address=addrStr
|
947
|
|
- try {
|
948
|
|
- val lastLocation = PadLocationConst.lastLocation
|
949
|
|
- if (location.lat!=null&&location.lon!=null&&(lastLocation.lon!=location.lon&&lastLocation.lat!=location.lat)){
|
950
|
|
- lastLocation.lat=location.lat
|
951
|
|
- lastLocation.lon=location.lon
|
952
|
|
- ManageApplication.getDeviceInfo()?.let {
|
953
|
|
- location.sn=it
|
954
|
|
- }
|
955
|
|
- userBean?.let {
|
956
|
|
- location.userid=it.userid
|
|
924
|
+ if (locationClient!=null){
|
|
925
|
+ LogShow("开始定位")
|
|
926
|
+ locationClient?.start()
|
|
927
|
+ }else{
|
|
928
|
+ LogShow("重新定位")
|
|
929
|
+ locationClient = LocationClient(application)
|
|
930
|
+ val option = LocationClientOption()
|
|
931
|
+ option.locationMode=LocationClientOption.LocationMode.Hight_Accuracy
|
|
932
|
+ //可选,设置返回经纬度坐标类型,默认gcj02
|
|
933
|
+ //gcj02:国测局坐标;
|
|
934
|
+ //bd09ll:百度经纬度坐标;
|
|
935
|
+ option.setCoorType("bd09ll")
|
|
936
|
+ option.setFirstLocType(LocationClientOption.FirstLocType.ACCURACY_IN_FIRST_LOC)
|
|
937
|
+ //可选,设置发起定位请求的间隔,int类型,单位ms,改为由定时任务动态调用
|
|
938
|
+ /* option.setScanSpan(1000*60*5)*/
|
|
939
|
+ //设置是否使用卫星定位
|
|
940
|
+ option.setOpenGnss(true)
|
|
941
|
+ //设置是否当卫星定位有效时按照1S/1次频率输出卫星定位结果
|
|
942
|
+ option.setLocationNotify(true)
|
|
943
|
+ //设置是否需要过滤卫星定位仿真结果,默认需要,即参数为false
|
|
944
|
+ option.setEnableSimulateGnss(false)
|
|
945
|
+ //可选,设置是否需要最新版本的地址信息。默认需要,即参数为true
|
|
946
|
+ option.setNeedNewVersionRgc(true)
|
|
947
|
+ option.setIsNeedAddress(true)
|
|
948
|
+ locationClient?.locOption=option
|
|
949
|
+ locationClient?.registerLocationListener(object :BDAbstractLocationListener(){
|
|
950
|
+ override fun onReceiveLocation(bdLocation: BDLocation) {
|
|
951
|
+ //此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果
|
|
952
|
+ val latitude: Double = bdLocation.getLatitude() //获取纬度信息
|
|
953
|
+
|
|
954
|
+ val longitude: Double = bdLocation.getLongitude() //获取经度信息
|
|
955
|
+ val addrStr = bdLocation.addrStr
|
|
956
|
+ val location = PadLocationConst.currentLocation
|
|
957
|
+ location.lat=latitude
|
|
958
|
+ location.lon=longitude
|
|
959
|
+ location.address=addrStr
|
|
960
|
+ try {
|
|
961
|
+ val lastLocation = PadLocationConst.lastLocation
|
|
962
|
+ if (location.lat!=null&&location.lon!=null&&!location.address.isNullOrBlank()&&(lastLocation.lon!=location.lon&&lastLocation.lat!=location.lat)){
|
|
963
|
+ lastLocation.lat=location.lat
|
|
964
|
+ lastLocation.lon=location.lon
|
|
965
|
+ ManageApplication.getDeviceInfo()?.let {
|
|
966
|
+ location.sn=it
|
|
967
|
+ }
|
|
968
|
+ userBean?.let {
|
|
969
|
+ location.userid=it.userid
|
|
970
|
+ }
|
|
971
|
+ viewModel.postPadLocation((location))
|
|
972
|
+ LogShow("真没有位置")
|
|
973
|
+ }else{
|
|
974
|
+ LogShow("没有位置")
|
957
|
975
|
}
|
958
|
|
- viewModel.postPadLocation((location))
|
959
|
|
- LogShow("真没有位置")
|
960
|
|
- }else{
|
961
|
|
- LogShow("没有位置")
|
|
976
|
+ }catch (e:Exception){
|
|
977
|
+ LogShow("没有位置问题"+e.toString())
|
962
|
978
|
}
|
963
|
|
- }catch (e:Exception){
|
964
|
|
- LogShow("没有位置问题"+e.toString())
|
965
|
979
|
}
|
966
|
|
- }
|
967
|
980
|
|
968
|
|
- })
|
969
|
|
- locationClient?.start()
|
|
981
|
+ })
|
|
982
|
+ locationClient?.start()
|
|
983
|
+ }
|
970
|
984
|
}
|
971
|
985
|
|
972
|
986
|
private fun useTimeStrategy() {
|
|
@@ -1274,6 +1288,9 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
|
1274
|
1288
|
Const.ACCOUNTLOGINOUTSUCESS->{
|
1275
|
1289
|
loginOutSucess()
|
1276
|
1290
|
}
|
|
1291
|
+ Const.STARTLOCATION->{
|
|
1292
|
+ getLocation()
|
|
1293
|
+ }
|
1277
|
1294
|
}
|
1278
|
1295
|
}
|
1279
|
1296
|
|