| 
														
															@@ -2,14 +2,14 @@ package com.cr.viewmodel 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import androidx.lifecycle.MutableLiveData 
														 | 
														
														 | 
														
															 import androidx.lifecycle.MutableLiveData 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.cr.common.CrFlightControlInfo 
														 | 
														
														 | 
														
															 import com.cr.common.CrFlightControlInfo 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import com.cr.common.CrJTMManager 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import com.cr.common.CrUnitManager 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.cr.cruav.R 
														 | 
														
														 | 
														
															 import com.cr.cruav.R 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import com.cr.data.DEFAULT_STR 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import dji.sdk.keyvalue.key.BatteryKey 
														 | 
														
														 | 
														
															 import dji.sdk.keyvalue.key.BatteryKey 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import dji.sdk.keyvalue.key.FlightControllerKey 
														 | 
														
														 | 
														
															 import dji.sdk.keyvalue.key.FlightControllerKey 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import dji.sdk.keyvalue.key.KeyTools 
														 | 
														
														 | 
														
															 import dji.sdk.keyvalue.key.KeyTools 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import dji.sdk.keyvalue.key.ProductKey 
														 | 
														
														 | 
														
															 import dji.sdk.keyvalue.key.ProductKey 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import dji.sdk.keyvalue.value.flightcontroller.CompassCalibrationState 
														 | 
														
														 | 
														
															 import dji.sdk.keyvalue.value.flightcontroller.CompassCalibrationState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import dji.sdk.keyvalue.value.flightcontroller.FlyLimitLicenseVersion 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import dji.sdk.keyvalue.value.flightcontroller.IMUCalibrationState 
														 | 
														
														 | 
														
															 import dji.sdk.keyvalue.value.flightcontroller.IMUCalibrationState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import dji.sdk.keyvalue.value.product.ProductType 
														 | 
														
														 | 
														
															 import dji.sdk.keyvalue.value.product.ProductType 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import dji.v5.et.create 
														 | 
														
														 | 
														
															 import dji.v5.et.create 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -17,6 +17,8 @@ import dji.v5.et.listen 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import dji.v5.manager.KeyManager 
														 | 
														
														 | 
														
															 import dji.v5.manager.KeyManager 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import dji.v5.utils.common.ContextUtil 
														 | 
														
														 | 
														
															 import dji.v5.utils.common.ContextUtil 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import dji.v5.utils.common.StringUtils 
														 | 
														
														 | 
														
															 import dji.v5.utils.common.StringUtils 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import org.locationtech.jts.geom.Coordinate 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import org.locationtech.jts.geom.GeometryFactory 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 /** 
														 | 
														
														 | 
														
															 /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * 操作系统:MAC系统 
														 | 
														
														 | 
														
															  * 操作系统:MAC系统 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -40,7 +42,13 @@ class CrFlightControlVM : CrViewModel() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * 计算距离 
														 | 
														
														 | 
														
															      * 计算距离 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      */ 
														 | 
														
														 | 
														
															      */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private fun calculateDistance(){ 
														 | 
														
														 | 
														
															     private fun calculateDistance(){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        flightControlInfo.value?.let { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if(it.homeLongitude > 0 && it.homeLatitude>0 && it.longitude>0 && it.latitude>0){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                val distance = CrJTMManager.calculateDistance(it.homeLongitude,it.homeLatitude,it.longitude,it.latitude) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                it.homeDistance = distance 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                it.homeDistanceStr = CrUnitManager.formatLength(distance) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /** 
														 | 
														
														 | 
														
															     /** 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -138,7 +146,9 @@ class CrFlightControlVM : CrViewModel() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 flightControlInfo.value?.altitude = it.altitude 
														 | 
														
														 | 
														
															                 flightControlInfo.value?.altitude = it.altitude 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 flightControlInfo.value?.longitudeStr = String.format("%.5f",it.longitude) 
														 | 
														
														 | 
														
															                 flightControlInfo.value?.longitudeStr = String.format("%.5f",it.longitude) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 flightControlInfo.value?.latitudeStr = String.format("%.5f",it.latitude) 
														 | 
														
														 | 
														
															                 flightControlInfo.value?.latitudeStr = String.format("%.5f",it.latitude) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                flightControlInfo.value?.altitudeStr = String.format("%.1f",it.altitude) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                flightControlInfo.value?.altitudeStr = String.format("%.1f米",it.altitude) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                // todo: 2023/8/16 计算返航距离 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                calculateDistance() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 refresh(flightControlInfo) 
														 | 
														
														 | 
														
															                 refresh(flightControlInfo) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -156,6 +166,8 @@ class CrFlightControlVM : CrViewModel() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             it?.let { 
														 | 
														
														 | 
														
															             it?.let { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 flightControlInfo.value?.homeLongitude = it.longitude 
														 | 
														
														 | 
														
															                 flightControlInfo.value?.homeLongitude = it.longitude 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 flightControlInfo.value?.homeLatitude = it.latitude 
														 | 
														
														 | 
														
															                 flightControlInfo.value?.homeLatitude = it.latitude 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                // todo: 2023/8/16 计算返航距离 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                calculateDistance() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 refresh(flightControlInfo) 
														 | 
														
														 | 
														
															                 refresh(flightControlInfo) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -163,7 +175,15 @@ class CrFlightControlVM : CrViewModel() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         FlightControllerKey.KeyTakeoffLocationAltitude.create().listen(this){ 
														 | 
														
														 | 
														
															         FlightControllerKey.KeyTakeoffLocationAltitude.create().listen(this){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             it?.let { 
														 | 
														
														 | 
														
															             it?.let { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 flightControlInfo.value?.takeoffAltitude = it 
														 | 
														
														 | 
														
															                 flightControlInfo.value?.takeoffAltitude = it 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                flightControlInfo.value?.takeoffAltitudeStr = String.format("%.1f",it) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                flightControlInfo.value?.takeoffAltitudeStr = String.format("%.1f米",it) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                refresh(flightControlInfo) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // todo: 2023/8/16 返航高度 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        FlightControllerKey.KeyGoHomeHeight.create().listen(this){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            it?.let { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                flightControlInfo.value?.homeAltitude = it 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                flightControlInfo.value?.homeAltitudeStr = String.format("%d米",it) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 refresh(flightControlInfo) 
														 | 
														
														 | 
														
															                 refresh(flightControlInfo) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 |