最近碰到一个需求,在app上,引用高德地图,在地图上选点。连线,然后上传航点数据,让大疆的无人机,按照我们设置的航线飞行。
1.效果图:
1.1.下载模拟软件,模拟无人机的当前位置,在软件上查看软件的飞行 DJI Assistant 2 For Phantom,运行的效果图如下,这个软件可以在大疆api官网下载
1.2.地图上用红色的小飞机,表示当前模拟的无人机的位置,点击按钮add,开始添加航点,我的程序,自动把航点练成了线,因为我们是无人机的航线,所以直接连接,不考虑道路交通的情况
1.3.设置最大的航行高度,飞行速度,完成航点任务后,无人机的执行动作等等,设置完后,点击finish,上传航线数据,然后点击upload按钮,加载航线,
1.4.点击start按钮,无人机开始执行任务,任务执行完后,飞机会爬升高度到120M,然后返航,到达起始模拟点,开始降落
2.在app下面的builder.gradle引入大疆dji和高德的框架,这里只是贴出部分,如果是零基础开发者,建议查看我上篇博客,里面详细讲解了如何引用大疆sdk和高德sdk
implementation('com.dji:dji-sdk:4.11', {
/**
* Uncomment the "library-anti-distortion" if your app does not need Anti Distortion for Mavic 2 Pro and Mavic 2 Zoom.
* Uncomment the "fly-safe-database" if you need database for release, or we will download it when DJISDKManager.getInstance().registerApp
* is called.
* Both will greatly reducing the size of the APK.
*/
exclude module: 'library-anti-distortion'
exclude module: 'fly-safe-database'
})
compileOnly 'com.dji:dji-sdk-provided:4.11'
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.core:core:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-rc01'
implementation 'androidx.annotation:annotation:1.0.0'
implementation 'io.netty:netty-all:4.1.38.Final'
implementation 'com.google.android.material:material:1.0.0'
implementation 'com.github.zcweng:switch-button:0.0.3@aar'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'io.netty:netty-all:4.1.38.Final'
implementation files('libs/AMap_Location_V4.7.0_20190708.jar')
implementation files('libs/AMap_Search_V6.9.2_20190709.jar')
implementation files('libs/Android_Map3D_SDK_V6.9.2_20190709.jar')
implementation files('libs/Amap_2DMap_V5.2.0_20170627.jar')
}
3.清单文件
3.1 添加权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="and