|
|
|
@ -13,6 +13,9 @@
|
|
|
|
|
|
|
|
|
|
import { calculateGsd,calculateSpacing,calculateInterval,uavModel } from './calculateAirLine'
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 航线航线计算
|
|
|
|
|
*/
|
|
|
|
|
export default class Mapping2d {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -24,7 +27,9 @@ export default class Mapping2d {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 构造方法
|
|
|
|
|
* 面状航线计算构造方法
|
|
|
|
|
* @param templateKmlConfig template.kml配置
|
|
|
|
|
* @param waylineWpmlConfig wayline.wpml配置
|
|
|
|
|
*/
|
|
|
|
|
constructor(templateKmlConfig:Object,waylineWpmlConfig:Object){
|
|
|
|
|
this.templateKmlConfig = templateKmlConfig;
|
|
|
|
@ -33,7 +38,10 @@ export default class Mapping2d {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 计算获取结果
|
|
|
|
|
* 根据传入的template.kml、wayline.wpml配置信息计算返回航线文件
|
|
|
|
|
*
|
|
|
|
|
* @Result 航线文件的Blob对象
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
generateAirLine(){
|
|
|
|
|
|
|
|
|
@ -59,16 +67,10 @@ export default class Mapping2d {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据航线文件高度计算gsd
|
|
|
|
|
*
|
|
|
|
|
* 根据gsd 和 航线文件中重叠率 计算航线间距
|
|
|
|
|
* 解析template.kml测区范围信息
|
|
|
|
|
*
|
|
|
|
|
* @returns 测区范围面状geojson数据
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 处理测区范围
|
|
|
|
|
*/
|
|
|
|
|
handlerCalculateParams(){
|
|
|
|
|
|
|
|
|
|
let coordinateArray =this.templateKmlConfig.Folder.Placemark.Polygon.outerBoundaryIs.LinearRing.coordinates.split('\n');
|
|
|
|
@ -102,9 +104,13 @@ export default class Mapping2d {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生成航线
|
|
|
|
|
*/
|
|
|
|
|
/**
|
|
|
|
|
* 航线计算核心方法
|
|
|
|
|
* @param polygon 测区边界geojson
|
|
|
|
|
* @param spacing 航线间距
|
|
|
|
|
* @param angle 航线角度,默认0度为正北方向
|
|
|
|
|
* @returns 航点
|
|
|
|
|
*/
|
|
|
|
|
generateScanLines(polygon, spacing, angle = 0) {
|
|
|
|
|
|
|
|
|
|
if (!turf.booleanValid(polygon)) throw new Error('无效的多边形');
|
|
|
|
@ -881,9 +887,8 @@ export default class Mapping2d {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* xml文件转换为 kml、wpml文件
|
|
|
|
|
*/
|
|
|
|
|
async convertXmlToKmz(templateXml,waylineXml){
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
async convertXmlToKmz(templateXml,waylineXml){
|
|
|
|
|
|
|
|
|
|
const zip = new JSZip();
|
|
|
|
|
|
|
|
|
|