飞行区域管理类
IFlyZoneManager
描述 无人机飞行区域管理主要包含禁飞区管理、授权区管理和可飞区管理。禁飞区又分为全球固定禁飞区、临时禁飞区和电子围栏(目前只支持符合ED-269规范的JSON文件)三种。SDK实现飞行区域相关的功能并提供符合法律法规的接口给外部使用。
method getFlyZonesInSurroundingArea
fun getFlyZonesInSurroundingArea(
location: LocationCoordinate2D,
callback: CommonCallbacks.CompletionCallbackWithParam<List<FlyZoneInformation>?>
)
描述: 获取距离中心位置100公里范围内的禁⻜区,包括固定禁飞区、临时禁飞区和导入的电子围栏
输入参数: location 中心位置
输入参数: callback 结果回调
输出参数: 无
相关参数: LocationCoordinate2D, FlyZoneInformation, FlyZoneCategory, FlyZoneShape
/**
* 位置坐标类
*/
data class LocationCoordinate2D(
val latitude: Double, // 纬度
val longitude: Double // 经度
)
/**
* 限飞区策略。包括禁飞区,授权区,警告区和加强警告区等。
*/
enum class FlyZoneCategory(val type: Int) {
UNKNOWN(-1),
/**
* 警告区
*/
WARNING(0),
/**
* 授权区
*/
AUTHORIZATION(1),
/**
* 禁飞区
*/
RESTRICTED(2),
/**
* 加强警告区
*/
ENHANCED_WARNING(3),
;
}
/**
* 限飞区形状类型。包括圆形和多边形。
*/
enum class FlyZoneShape(val type: Int) {
UNKNOWN(-1),
/**
* 圆形
*/
CIRCLE(0),
/**
* 多边形
*/
POLYGON(1),
;
}
method downloadAuthFlyZoneFromServer
fun downloadAuthFlyZoneFromServer(
aircraftSN: String,
token: String,
location: LocationCoordinate2D,
callback: CommonCallbacks.CompletionCallbackWithParam<List<FlyZoneAuthInformation>?>
)
描述: 从服务器获取指定⻜机授权区信息.
输入参数: aircraftSN 飞机序列号
输入参数: token 令牌,登录时从服务器获取, 没有可以不填
输入参数: location 中心位置
输入参数: callback 结果回调
输出参数: 无
相关参数: LocationCoordinate2D, FlyZoneAuthInformation
method importFlySafeDynamicDatabaseToMSDK
fun importFlySafeDynamicDatabaseToMSDK(
filePath: String,
callback: CommonCallbacks.CompletionCallbackWithParam<List<FlyZoneInformation>>
)
描述: 将飞行地理感知数据库导入到MSDK中,当前只支持导入欧盟地理感知数据。地理感知数据可以从欧洲航空安全局官网下载
输入参数: filePath 数据文件路径,数据文件必须为JSON格式并且需要符合ED-269规范。
输入参数: callback 结果回调
输出参数: 无
相关参数: FlyZoneInformation
method getFlySafeDynamicDataVersion
fun getFlySafeDynamicDataVersion(): String
描述: 获取飞行地理感知数据库版本, 如果没有,则返回空
输入参数: 无
输出参数: 飞行地理感知数据库版本
相关参数: 无
method getTempNoFlyZone
fun getTempNoFlyZone(
location: LocationCoordinate2D,
callback: CommonCallbacks.CompletionCallbackWithParam<List<FlyZoneInformation>>
)
描述: 获取临时禁飞区信息
输入参数: location 飞机的经纬度信息
输入参数: callback 结果回调
输出参数: 无
相关参数: FlyZoneInformation
method getFixedNoFlyZone
fun getFixedNoFlyZone(
location: LocationCoordinate2D,
callback: CommonCallbacks.CompletionCallbackWithParam<List<FlyZoneInformation>>
)
描述: 获取距离中心位置100公里范围内的固定定禁飞区
输入参数: location 飞机的经纬度信息
输入参数: callback 结果回调
输出参数: 无
相关参数: FlyZoneInformation
method getImportNoFlyZone
fun getFixedNoFlyZone(callback: CommonCallbacks.CompletionCallbackWithParam<List<FlyZoneInformation>>)
描述: 获取导入的电子围栏信息
输入参数: callback 结果回调
输出参数: 无
相关参数: FlyZoneInformation
method writeNoFlyZoneFile
fun writeNoFlyZoneFile(
filePath: String,
fileType: FileTypeEnum,
flyZoneInformation: List<FlyZoneInformation>,
authZoneInformation: List<FlyZoneAuthInformation>,
callback: CommonCallbacks.CompletionCallback
)
描述: 将限飞区和授权区转为Autel格式的文件
输入参数: filePath 文件相对路径
输入参数: fileType 文件类型
输入参数: flyZoneInformation 限飞区信息
输入参数: authZoneInformation 授权区信息
输入参数: callback 结果回调
输出参数: 无
相关参数: FileTypeEnum, FlyZoneInformation, FlyZoneAuthInformation
enum class FileTypeEnum(var value: Int) {
/**
* 高程文件
*/
ELEVATION,
/**
* 固定禁飞区文件
*/
FIXED_NO_FLY_ZONE,
/**
* 临时禁飞区文件
*/
TEMP_NO_FLY_ZONE(3),
/**
* 授权区文件
*/
AUTHORIZED_ZONE(4),
/**
* 电子围栏
*/
ELECTRIC_BARRIER(5),
/**
* 可飞区文件
*/
FLY_ZONE(14),
/**
* Unknown
*/
UNKNOWN(-1)
}
method uploadNoFlyZoneToAircraft
fun uploadNoFlyZoneToAircraft(
filePath: String,
aircraftSN: String,
fileType: FileTypeEnum,
callback: CommonCallbacks.UpLoadFileCallbackWithProgress<Int>
)
描述: 上传限飞区文件到飞机, 注意:
飞机已经内置固定禁飞区,不需要上传
目前Autel固定翼飞机将临时禁飞区、电子围栏和授权区整合成一个文件上传
Autel固定翼飞机只能使用FileTypeEnum.ELECTRIC_BARRIER类型上传
同一文件类型上传会覆盖之前的文件
输入参数: filePath 文件相对路径
输入参数: aircraftSN 飞机序列号
输入参数: fileType 文件类型
输入参数: callback 结果回调
输出参数: 无
相关参数: FileTypeEnum