Skip to main content

飞行区域管理类

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