关于FollowMeMession的代码分享
0
//启动跟随DJISdkHelper.getFollowMeMissionOperator()?.startMission(
FollowMeMission(
FollowMeHeading.TOWARD_FOLLOW_POSITION,
locateInfo.latitude,
locateInfo.longitude,
mAltitude
)
)
{ inner1 ->
if (inner1 == null)
callback.invoke(true)//成功开启跟随回调
if (null == mUpdateFollowTargetTask) {
mUpdateFollowTargetTask = UpdateFollowTargetTask()//新建实时更新跟随点的TimerTask对象
}
if(null == mUpdateFollowTargetTimer){r
mUpdateFollowTargetTimer = Timer()//新建实时更新跟随点的Timer对象
}
//开启实时更新跟随点任务 mUpdateFollowTargetTimer!!.schedule(mUpdateFollowTargetTask, 0, 100L)
} else {
if(inner1.errorCode == 176){
mHandler.post {
DialogUtils.showTextDialog(mActivity,"随航失败:超过20km",true,null)
}
}
callback.invoke(false)//开启跟随失败回调
}
}//实时更新跟随点任务,频率为0.1s
private inner class UpdateFollowTargetTask : TimerTask() {
override fun run()
//实时更新跟随点
updateCurrentLocateInfo(ConstantsUtil.IS_MAP_TEST)
//实时更新云台角度
//rotateGimbal()
}
}
//更新跟随点坐标
fun updateCurrentLocateInfo) { val mCurrentLat = DJIFlightModeHelper.getCurrentLocation()!!.latitude val mCurrentLng = DJIFlightModeHelper.getCurrentLocation()!!.longitude
followMissionOperator?.updateFollowingTarget(LocationCoordinate2D(mCurrentLat, mCurrentLng)) { inner ->if (inner == null) {
"更新跟随点成功:$mCurrentLat,$mCurrentLng".log()
"follow me state: ${followMissionOperator?.currentState}".log()
} else {
"更新跟随点失败:${inner.deion}".log(
}
} }
|
|
|
|