From 891ac00aaae4434027de3544356b94f6012b3f3e Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Mon, 01 Apr 2024 10:34:39 +0800
Subject: [PATCH] 规划生成航线xml

---
 src/main/java/com/dji/sample/patches/xml/mode/Folder.java                                     |   38 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/ActionActuatorFuncParam.java |   55 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/PanoShotParam.java           |   36 
 src/main/java/com/dji/sample/patches/xml/mode/share/DroneInfo.java                            |   18 
 src/main/java/com/dji/sample/patches/xml/mode/share/ActionMode.java                           |   43 
 pom.xml                                                                                       |   30 
 src/main/resources/template/waylines.xml                                                      |  136 +
 src/main/java/com/dji/sample/patches/xml/mode/Placemark.java                                  |   35 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/PayloadParamUtils.java       |   21 
 src/main/java/com/dji/sample/patches/xml/mode/share/AutoRerouteInfo.java                      |   18 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/PlacemarkUtils.java          |   28 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/CustomDirNameParam.java      |   19 
 src/main/resources/template/template.xml                                                      |  181 ++
 src/main/java/com/dji/sample/patches/xml/mode/MissionConfig.java                              |   58 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/FolderUtils.java             |   47 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/ActionUtils.java             |   71 
 src/main/java/com/dji/sample/patches/xml/controller/XMLController.java                        |  105 +
 src/main/java/com/dji/sample/patches/xml/mode/CameraActionEnum.java                           |   40 
 src/main/java/com/dji/sample/patches/xml/mode/XMLTemplateModel.java                           |   98 +
 src/main/java/com/dji/sample/patches/xml/mode/share/PayloadInfo.java                          |   19 
 src/main/resources/template2/template.xml                                                     |   14 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/GimbalRotateParam.java       |   68 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/ZoomParam.java               |   19 
 src/main/java/com/dji/sample/patches/utils/DistanceCalculator.java                            |  103 +
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/StopRecordParam.java         |   25 
 src/main/resources/template/newtemplate.xml                                                   |  868 +++++++++++
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/FocusParam.java              |   44 
 src/main/java/com/dji/sample/patches/xml/mode/WaypointHeadingParam.java                       |   20 
 src/main/java/com/dji/sample/patches/xml/mode/share/PayloadParam.java                         |   76 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/TakePhotoParam.java          |   36 
 src/main/java/com/dji/sample/patches/utils/GeoToolsUtil.java                                  |  140 +
 src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/MissionConfigUtils.java      |   31 
 src/main/resources/template/template.kml                                                      |  868 +++++++++++
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/HoverParam.java              |   19 
 src/main/java/com/dji/sample/patches/xml/mode/share/WaypointTurnParam.java                    |   35 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/RotateYawParam.java          |   27 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/StartRecordParam.java        |   34 
 src/main/resources/template2/newTemplate.xml                                                  |   48 
 src/main/java/com/dji/sample/patches/xml/mode/WaylineCoordinateSysParam.java                  |   17 
 src/main/java/com/dji/sample/patches/xml/mode/share/ActionTrigger.java                        |   30 
 src/main/resources/template/newwaylines.xml                                                   |  725 +++++++++
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/GimbalEvenlyRotateParam.java |   20 
 src/main/java/com/dji/sample/patches/xml/mode/share/action/param/OrientedShootParam.java      |  152 +
 src/main/java/com/dji/sample/patches/xml/mode/share/ActionGroup.java                          |   45 
 src/main/java/com/dji/sample/patches/xml/mode/share/GlobalWaypointHeadingParam.java           |   43 
 45 files changed, 4,593 insertions(+), 10 deletions(-)

diff --git a/pom.xml b/pom.xml
index 7295ed2..7647f29 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,15 +30,15 @@
         <javax-jaxb.version>2.3.0</javax-jaxb.version>
 
     </properties>
-<repositories>
-    <repository>
-        <id>osgeo</id>
-        <name>OSGeo Release Repository</name>
-        <url>https://repo.osgeo.org/repository/release/</url>
-        <snapshots><enabled>false</enabled></snapshots>
-        <releases><enabled>true</enabled></releases>
-    </repository>
-</repositories>
+    <repositories>
+        <repository>
+            <id>osgeo</id>
+            <name>OSGeo Release Repository</name>
+            <url>https://repo.osgeo.org/repository/release/</url>
+            <snapshots><enabled>false</enabled></snapshots>
+            <releases><enabled>true</enabled></releases>
+        </repository>
+    </repositories>
     <dependencies>
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -200,7 +200,6 @@
             <version>1.2.33</version>
         </dependency>
 
-
         <!-- aop依赖 -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -241,6 +240,17 @@
             <version>0.7</version>
         </dependency>
 
+        <!--   xml相关操作     -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-thymeleaf</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.freemarker</groupId>
+            <artifactId>freemarker</artifactId>
+        </dependency>
+
     </dependencies>
 
 
diff --git a/src/main/java/com/dji/sample/patches/utils/DistanceCalculator.java b/src/main/java/com/dji/sample/patches/utils/DistanceCalculator.java
new file mode 100644
index 0000000..e36b398
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/utils/DistanceCalculator.java
@@ -0,0 +1,103 @@
+package com.dji.sample.patches.utils;
+
+import org.locationtech.jts.geom.Coordinate;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION: 计算两个经纬度点之间的距离(以公里为单位)
+ * @USER: aix
+ * @DATE: 2024/3/25 14:25
+ */
+public class DistanceCalculator {
+
+    private static final int EARTH_RADIUS_KM = 6371; // 地球半径,单位:公里
+
+    /**
+     * 使用Haversine公式计算两个经纬度点之间的距离(单位:公里)
+     *
+     * @param lat1 第一个点的纬度
+     * @param lon1 第一个点的经度
+     * @param lat2 第二个点的纬度
+     * @param lon2 第二个点的经度
+     * @return 两点之间的距离(单位:公里)
+     */
+    public static double calculateDistance(double lat1, double lon1, double lat2, double lon2) {
+        double dLat = Math.toRadians(lat2 - lat1);
+        double dLon = Math.toRadians(lon2 - lon1);
+
+        lat1 = Math.toRadians(lat1);
+        lat2 = Math.toRadians(lat2);
+
+        double a = Math.pow(Math.sin(dLat / 2), 2)
+                + Math.pow(Math.sin(dLon / 2), 2) * Math.cos(lat1) * Math.cos(lat2);
+        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
+        double distance = EARTH_RADIUS_KM * c;
+
+        return distance;
+    }
+
+    /**
+     *  中心点排序
+     * @param coordinates 中心点数组
+     * @param airportLat 纬度
+     * @param airportLon 经度
+     * @param index 索引
+     * @param retCoordinate 返回结果
+     * @return
+     */
+    public static Coordinate[] sortByDistance(List<Coordinate> coordinates, double airportLat, double airportLon,int index,Coordinate[] retCoordinate) {
+        // 创建一个列表来保存坐标、对应的距离以及原始下标
+        List<Map.Entry<Coordinate, Map.Entry<Double, Integer>>> distanceList = new ArrayList<>();
+        for (int i = 0; i < coordinates.size(); i++) {
+            Coordinate coord = coordinates.get(i);
+            double distance = calculateDistance(airportLat, airportLon, coord.y, coord.x); // 注意:y是纬度,x是经度
+            distanceList.add(new AbstractMap.SimpleEntry<>(coord, new AbstractMap.SimpleEntry<>(distance, i)));
+        }
+
+        // 根据距离进行排序
+        distanceList.sort(Comparator.comparingDouble(entry -> entry.getValue().getKey()));
+
+        //中心点排序结果
+        retCoordinate[index] = distanceList.get(0).getKey();
+        coordinates.remove(distanceList.get(0).getKey());
+        if (coordinates.size() > 0) {
+            index = index+1;
+            sortByDistance(coordinates,distanceList.get(0).getKey().y,distanceList.get(0).getKey().x,index,retCoordinate);
+        }
+
+        return retCoordinate;
+    }
+
+    public static Coordinate[] getFirstPolygon(List<Coordinate> coordinatesCentro,Coordinate[] afterCoor,List<List<Coordinate>> coordinates) {
+        // 创建一个列表来保存坐标、对应的距离以及原始下标
+        List<Map.Entry<Coordinate, List<List<Coordinate>>>> distanceList = new ArrayList<>();
+        for (int i = 0; i < coordinates.size(); i++) {
+            Coordinate coord = coordinatesCentro.get(i);
+            distanceList.add(new AbstractMap.SimpleEntry<>(coord, coordinates));
+        }
+
+        // 如果你需要排序前的下标,你可以通过以下方式获取它们:
+        Map<Coordinate, List<List<Coordinate>>> originalIndexMap = distanceList.stream()
+                .collect(Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue()));
+
+        // 现在你可以通过坐标查找原始的下标
+        // 例如:int originalIndex = originalIndexMap.get(someCoordinate);
+
+        Coordinate[] retcoor = new Coordinate[afterCoor.length * 4 - 3];
+        for (int i = 0; i<afterCoor.length;i++) {
+            originalIndexMap.get(afterCoor[i]);
+            System.out.println(originalIndexMap.get(afterCoor[i]));
+        }
+
+        return null;
+
+    }
+
+
+
+
+
+}
diff --git a/src/main/java/com/dji/sample/patches/utils/GeoToolsUtil.java b/src/main/java/com/dji/sample/patches/utils/GeoToolsUtil.java
new file mode 100644
index 0000000..d8899bd
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/utils/GeoToolsUtil.java
@@ -0,0 +1,140 @@
+package com.dji.sample.patches.utils;
+
+import com.dji.sample.patches.model.entity.LotInfo;
+import org.geotools.geometry.jts.JTSFactoryFinder;
+import org.locationtech.jts.geom.Coordinate;
+import org.locationtech.jts.geom.Envelope;
+import org.locationtech.jts.geom.Geometry;
+import org.locationtech.jts.io.ParseException;
+import org.locationtech.jts.io.WKTReader;
+
+import java.util.*;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/25 10:35
+ */
+public class GeoToolsUtil {
+
+    /**
+     * 获取中心点位置
+     *
+     * @param geometry Geometry
+     * @return
+     */
+    public static Coordinate getCentro(Geometry geometry) {
+        return geometry.getCentroid().getCoordinate();
+    }
+
+    /**
+     * 获取4个点的经纬度
+     *
+     * @param geometry Geometry
+     * @return
+     */
+    public static List<Coordinate> getExtremePoints(Geometry geometry) {
+        List<Coordinate> extremePoints = new ArrayList<>();
+
+        Envelope envelope = geometry.getEnvelopeInternal();
+
+        // 获取4个点经纬度
+        extremePoints.add(new Coordinate(envelope.getMinX(), envelope.getMaxY()));
+        extremePoints.add(new Coordinate(envelope.getMinX(), envelope.getMinY()));
+        extremePoints.add(new Coordinate(envelope.getMaxX(), envelope.getMinY()));
+        extremePoints.add(new Coordinate(envelope.getMaxX(), envelope.getMaxY()));
+
+        return extremePoints;
+    }
+
+    /**
+     * 航线点排序
+     *
+     * @return
+     */
+    public static Coordinate [] getRoutePointOrder(List<LotInfo> list) {
+        List<Coordinate> centros = new ArrayList<>();
+        List<List<Coordinate>> extremePoints = new ArrayList<>();
+        Map<Coordinate,List<Coordinate>> points = new HashMap<>();
+        list.forEach(patche -> {
+            String wkt = patche.getDkfw();
+            // 解析WKT字符串为多边形
+            WKTReader wktReader = new WKTReader(JTSFactoryFinder.getGeometryFactory());
+            Geometry polygon = null;
+            try {
+                polygon = wktReader.read(wkt);
+            } catch (ParseException e) {
+                throw new RuntimeException(e);
+            }
+
+            // 开始封装中心点坐标
+            Coordinate coordinateCentro = getCentro(polygon);
+            centros.add(coordinateCentro);
+
+            // 开始封装图斑4个航线
+            List<Coordinate> coordinatePointList = getExtremePoints(polygon);
+            extremePoints.add(coordinatePointList);
+            points.put(coordinateCentro,coordinatePointList);
+
+        });
+
+        // 开始排序
+        // 机场经纬度
+        double airportLat = 28.624514734; // 机场纬度
+        double airportLon = 115.856725497; // 机场经度
+        Coordinate [] coordinates = new Coordinate[centros.size() + 1];
+        List<Coordinate> coordinateList = new ArrayList<>();
+        coordinates[0] = new Coordinate(airportLon, airportLat); //第一个为机场经纬度
+        coordinateList.add(new Coordinate(airportLon, airportLat)); //第一个为机场经纬度)
+        for (int i = 1; i < centros.size() + 1; i++) {
+            coordinates[i] = centros.get(i-1);
+            coordinateList.add(centros.get(i-1));
+        }
+
+        // 对中心坐标数组进行排序
+        Coordinate[] retCoordinate = new Coordinate[coordinateList.size()];
+        Coordinate[] sortedCoordinates = DistanceCalculator.sortByDistance(coordinateList, airportLat, airportLon, 0,retCoordinate);
+
+        // 开始拼接图斑点位--按中心坐标数组排序顺序
+        // 长度-3第一个起点只有一个点位
+        Coordinate[] retc = new Coordinate[sortedCoordinates.length * 4 - 3];
+        // 赋值起点
+        retc[0] = sortedCoordinates[0];
+        int i = 0;
+        for (Coordinate num : sortedCoordinates) {
+            List<Coordinate> coordinatePoints = points.get(num);
+            if (null != coordinatePoints) {
+                for (int j = 0; j < coordinatePoints.size(); j++) {
+                    // 开始拼接
+                    retc[i * coordinatePoints.size() + j - 3] = coordinatePoints.get(j);
+                }
+            }
+
+            i++;
+        }
+
+        return retc;
+
+
+    }
+
+
+    public static void main(String[] args) {
+        //测试
+        List<LotInfo> list = new ArrayList<>();
+        list.add(LotInfo.builder().dkfw("POLYGON((115.866465564947 28.6344502965542, 115.86425430209 28.6357383285408, 115.864551734716 28.633120921433, 115.866977149064 28.6338435339976, 115.866465564947 28.6344502965542))").build());
+        list.add(LotInfo.builder().dkfw("POLYGON((115.864006690605 28.6202713913694, 115.86002109342 28.6162025130492, 115.866374254306 28.6142037658042, 115.865912044006 28.6172001020759, 115.864006690605 28.6202713913694))").build());
+        list.add(LotInfo.builder().dkfw("POLYGON((115.839366933455 28.6161999317332, 115.841288489469 28.6160843601496, 115.840931570318 28.6181544912247, 115.838147600941 28.618654178036, 115.839366933455 28.6161999317332))").build());
+        list.add(LotInfo.builder().dkfw("POLYGON((115.857499052697 28.6784702230642, 115.859109158101 28.6762273976226, 115.863677723232 28.6766081113836, 115.862154868188 28.6790827508297, 115.857499052697 28.6784702230642))").build());
+        list.add(LotInfo.builder().dkfw("POLYGON((115.834974056705 28.6659171428962, 115.833760531592 28.6634960413229, 115.832422084777 28.6624550271329, 115.829745191145 28.6631986086972, 115.831232354274 28.6608191476914, 115.833314382654 28.6603729987527, 115.835545127347 28.6618601618814, 115.837032290475 28.6639421902615, 115.834974056705 28.6659171428962))").build());
+        list.add(LotInfo.builder().dkfw("POLYGON((115.885622116006 28.5766308429787, 115.883936664461 28.5771582901683, 115.883365593819 28.5752547213636, 115.883555950699 28.5740174016407, 115.88365112914 28.5724945465969, 115.885364341064 28.5721138328361, 115.886696839227 28.5725897250371, 115.887458266749 28.5736366878797, 115.886792017668 28.5753498998039, 115.885622116006 28.5766308429787))").build());
+        list.add(LotInfo.builder().dkfw("POLYGON((115.857644341395 28.5750890964568, 115.857572957565 28.5729475815515, 115.858429563527 28.5728761977213, 115.859072017998 28.5738041875136, 115.859072017998 28.5748035611361, 115.857644341395 28.5750890964568))").build());
+        list.add(LotInfo.builder().dkfw("POLYGON((115.912181587649 28.6231542087745, 115.912181587649 28.6215123806805, 115.915893546818 28.6212268453598, 115.916036314478 28.6231542087745, 115.912181587649 28.6231542087745))").build());
+        list.add(LotInfo.builder().dkfw("POLYGON((115.842039042965 28.6314426646115, 115.840992080122 28.631252307731, 115.842324578286 28.6305860586493, 115.843181184248 28.6305860586493, 115.84403779021 28.6304908802091, 115.84394261177 28.6317281999322, 115.842039042965 28.6314426646115))").build());
+        list.add(LotInfo.builder().dkfw("POLYGON((115.807011889796 28.623935465138, 115.805869748513 28.6224126100944, 115.810247956764 28.6220318963334, 115.809581707682 28.623935465138, 115.807011889796 28.623935465138))").build());
+
+        getRoutePointOrder(list);
+    }
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/controller/XMLController.java b/src/main/java/com/dji/sample/patches/xml/controller/XMLController.java
new file mode 100644
index 0000000..9c6d883
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/controller/XMLController.java
@@ -0,0 +1,105 @@
+package com.dji.sample.patches.xml.controller;
+
+import com.dji.sample.patches.model.entity.LotInfo;
+import com.dji.sample.patches.utils.GeoToolsUtil;
+import com.dji.sample.patches.xml.mode.*;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import lombok.extern.slf4j.Slf4j;
+import org.locationtech.jts.geom.Coordinate;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Classname XMLController
+ * @Description
+ * @Date 2022/6/19 19:10
+ * @Author: fanqiechaodan
+ */
+@RestController
+@RequestMapping(value = "/xml")
+@Slf4j
+public class XMLController {
+
+
+
+    public static void main(String[] args) {
+
+        //测试
+        List<LotInfo> list = new ArrayList<>();
+        list.add(LotInfo.builder().dkbh("dkbh01").dkfw("POLYGON((115.866465564947 28.6344502965542, 115.86425430209 28.6357383285408, 115.864551734716 28.633120921433, 115.866977149064 28.6338435339976, 115.866465564947 28.6344502965542))").build());
+        list.add(LotInfo.builder().dkbh("dkbh02").dkfw("POLYGON((115.864006690605 28.6202713913694, 115.86002109342 28.6162025130492, 115.866374254306 28.6142037658042, 115.865912044006 28.6172001020759, 115.864006690605 28.6202713913694))").build());
+        list.add(LotInfo.builder().dkbh("dkbh03").dkfw("POLYGON((115.839366933455 28.6161999317332, 115.841288489469 28.6160843601496, 115.840931570318 28.6181544912247, 115.838147600941 28.618654178036, 115.839366933455 28.6161999317332))").build());
+//        list.add(LotInfo.builder().dkbh("dkbh04").dkfw("POLYGON((115.857499052697 28.6784702230642, 115.859109158101 28.6762273976226, 115.863677723232 28.6766081113836, 115.862154868188 28.6790827508297, 115.857499052697 28.6784702230642))").build());
+//        list.add(LotInfo.builder().dkbh("dkbh05").dkfw("POLYGON((115.834974056705 28.6659171428962, 115.833760531592 28.6634960413229, 115.832422084777 28.6624550271329, 115.829745191145 28.6631986086972, 115.831232354274 28.6608191476914, 115.833314382654 28.6603729987527, 115.835545127347 28.6618601618814, 115.837032290475 28.6639421902615, 115.834974056705 28.6659171428962))").build());
+//        list.add(LotInfo.builder().dkbh("dkbh06").dkfw("POLYGON((115.885622116006 28.5766308429787, 115.883936664461 28.5771582901683, 115.883365593819 28.5752547213636, 115.883555950699 28.5740174016407, 115.88365112914 28.5724945465969, 115.885364341064 28.5721138328361, 115.886696839227 28.5725897250371, 115.887458266749 28.5736366878797, 115.886792017668 28.5753498998039, 115.885622116006 28.5766308429787))").build());
+//        list.add(LotInfo.builder().dkbh("dkbh07").dkfw("POLYGON((115.857644341395 28.5750890964568, 115.857572957565 28.5729475815515, 115.858429563527 28.5728761977213, 115.859072017998 28.5738041875136, 115.859072017998 28.5748035611361, 115.857644341395 28.5750890964568))").build());
+//        list.add(LotInfo.builder().dkbh("dkbh08").dkfw("POLYGON((115.912181587649 28.6231542087745, 115.912181587649 28.6215123806805, 115.915893546818 28.6212268453598, 115.916036314478 28.6231542087745, 115.912181587649 28.6231542087745))").build());
+//        list.add(LotInfo.builder().dkbh("dkbh09").dkfw("POLYGON((115.842039042965 28.6314426646115, 115.840992080122 28.631252307731, 115.842324578286 28.6305860586493, 115.843181184248 28.6305860586493, 115.84403779021 28.6304908802091, 115.84394261177 28.6317281999322, 115.842039042965 28.6314426646115))").build());
+//        list.add(LotInfo.builder().dkbh("dkbh10").dkfw("POLYGON((115.807011889796 28.623935465138, 115.805869748513 28.6224126100944, 115.810247956764 28.6220318963334, 115.809581707682 28.623935465138, 115.807011889796 28.623935465138))").build());
+
+
+        Coordinate[] coordinates = GeoToolsUtil.getRoutePointOrder(list);
+
+        XMLTemplateModel xmlModel = XMLTemplateModel.init(coordinates,list);
+
+
+
+
+        xml2XmlDoc(xmlModel, "src\\main\\resources\\template\\template.xml", "src\\main\\resources\\template\\newtemplate.xml");
+        xml2XmlDoc(xmlModel, "src\\main\\resources\\template\\waylines.xml", "src\\main\\resources\\template\\newwaylines.xml");
+    }
+
+    /**
+     * 将xml模板转换为newxml
+     *
+     * @param model           需要填充到模板的数据
+     * @param templetFilePath 模板文件路径
+     * @param targetFilePath  目标文件保存路径
+     */
+    public static void xml2XmlDoc(XMLTemplateModel model, String templetFilePath, String targetFilePath) {
+        Writer out = null;
+        try {
+            // 将模板文件路径拆分为文件夹路径和文件名称
+            String tempLetDir = templetFilePath.substring(0, templetFilePath.lastIndexOf("\\"));
+            // 注意:templetFilePath.lastIndexOf("/")中,有的文件分隔符为:\ 要注意文件路径的分隔符
+            String templetName = templetFilePath.substring(templetFilePath.lastIndexOf("\\") + 1);
+            // 将目标文件保存路径拆分为文件夹路径和文件名称
+            String targetDir = targetFilePath.substring(0, targetFilePath.lastIndexOf("\\"));
+            String targetName = targetFilePath.substring(targetFilePath.lastIndexOf("\\") + 1);
+            Configuration configuration = new Configuration();
+            configuration.setDefaultEncoding(String.valueOf(StandardCharsets.UTF_8));
+            // 如果目标文件目录不存在创建
+            File file = new File(targetDir);
+            if (!file.exists()) {
+                file.mkdirs();
+            }
+            //加载模板数据(从文件路径中获取文件)
+            configuration.setDirectoryForTemplateLoading(new File(tempLetDir));
+            //获取模板实例
+            Template template = configuration.getTemplate(templetName);
+            File outFile = new File(targetDir + File.separator + targetName);
+            //模板和数据模型合并生成文件
+            out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), StandardCharsets.UTF_8));
+            //生成文件
+            template.process(model, out);
+            out.flush();
+            out.close();
+        } catch (Exception e) {
+            log.error("write xml failed:", e);
+        } finally {
+            if (out != null) {
+                try {
+                    out.close();
+                } catch (IOException e) {
+                    log.error("close out failed:", e);
+                }
+            }
+        }
+    }
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/CameraActionEnum.java b/src/main/java/com/dji/sample/patches/xml/mode/CameraActionEnum.java
new file mode 100644
index 0000000..25f8c6a
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/CameraActionEnum.java
@@ -0,0 +1,40 @@
+package com.dji.sample.patches.xml.mode;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 15:18
+ */
+public enum CameraActionEnum {
+
+    TAKE_PHOTO("takePhoto"),//单拍
+    START_RECORD("startRecord"),//开始录像
+    STOP_RECORD("stopRecord"),//结束录像
+    FOCUS("focus"),//对焦
+    ZOOM("zoom"),//变焦
+    CUSTOM_DIR_NAME("customDirName"),//创建新文件夹
+    GIMBAL_ROTATE("gimbalRotate"),//旋转云台
+    ROTATE_YAW("rotateYaw"),//飞行器偏航
+    HOVER("hover"),//悬停等待
+    GIMBAL_EVENLY_ROTATE("gimbalEvenlyRotate"),//航段间均匀转动云台pitch角
+    ACCURATE_SHOOT("accurateShoot"),//精准复拍动作(已暂停维护,建议使用ORIENTED_SHOOT)
+    ORIENTED_SHOOT("orientedShoot"),//精准复拍动作
+    PANO_SHOT("panoShot");//全景拍照动作(仅支持M30/M30T)
+
+    private final String description;
+
+    CameraActionEnum(String description) {
+        this.description = description;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    @Override
+    public String toString() {
+        return this.name();
+    }
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/Folder.java b/src/main/java/com/dji/sample/patches/xml/mode/Folder.java
new file mode 100644
index 0000000..bee0519
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/Folder.java
@@ -0,0 +1,38 @@
+package com.dji.sample.patches.xml.mode;
+
+import com.dji.sample.patches.xml.mode.share.GlobalWaypointHeadingParam;
+import com.dji.sample.patches.xml.mode.share.PayloadParam;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 11:38
+ */
+@Data
+public class Folder {
+
+    private String templateType;
+    private String templateId;
+
+    private WaylineCoordinateSysParam waylineCoordinateSysParam;
+
+    private Double autoFlightSpeed;
+    private Double globalHeight;
+    private Integer caliFlightEnable;
+    private String gimbalPitchMode;
+
+    private GlobalWaypointHeadingParam globalWaypointHeadingParam;
+
+    private String globalWaypointTurnMode;
+    private Integer globalUseStraightLine;
+
+    private List<Placemark> placemarkList = new ArrayList<>();
+
+    private PayloadParam payloadParam;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/MissionConfig.java b/src/main/java/com/dji/sample/patches/xml/mode/MissionConfig.java
new file mode 100644
index 0000000..8668a29
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/MissionConfig.java
@@ -0,0 +1,58 @@
+package com.dji.sample.patches.xml.mode;
+
+import com.dji.sample.patches.xml.mode.share.DroneInfo;
+import com.dji.sample.patches.xml.mode.share.PayloadInfo;
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION: 设置任务配置
+ * @USER: aix
+ * @DATE: 2024/3/27 11:28
+ */
+@Data
+@Builder
+public class MissionConfig {
+    /**
+     * 飞向首航点模式
+     */
+    private String flyToWaylineMode = "safely";
+    /**
+     * 航线结束动作
+     */
+    private String finishAction = "goHome";
+    /**
+     * 失控是否继续执行航线
+     */
+    private String exitOnRCLost = "goContinue";
+    /**
+     * 失控动作类型
+     */
+    private String executeRCLostAction = "goBack";
+    /**
+     * 安全起飞高度
+     */
+    private Double takeOffSecurityHeight = 20D;
+    /**
+     * 参考起飞点
+     */
+    private String takeOffRefPoint;
+    /**
+     * 参考起飞点海拔高度
+     */
+    private String takeOffRefPointAGLHeight = "0";
+    /**
+     * 全局航线过渡速度
+     */
+    private Double globalTransitionalSpeed = 10D;
+    /**
+     * 全局返航高度
+     */
+    private Double globalRTHHeight;
+
+    private DroneInfo droneInfo;
+
+    private PayloadInfo payloadInfo;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/Placemark.java b/src/main/java/com/dji/sample/patches/xml/mode/Placemark.java
new file mode 100644
index 0000000..186f25c
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/Placemark.java
@@ -0,0 +1,35 @@
+package com.dji.sample.patches.xml.mode;
+
+import com.dji.sample.patches.xml.mode.share.ActionGroup;
+import com.dji.sample.patches.xml.mode.share.ActionMode;
+import com.dji.sample.patches.xml.mode.share.WaypointTurnParam;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 13:36
+ */
+@Data
+public class Placemark {
+
+    private String coordinates;
+    private String index;
+    private Double ellipsoidHeight;
+    private Double height;
+    private String waypointSpeed;
+    private WaypointHeadingParam waypointHeadingParam;
+    private WaypointTurnParam waypointTurnParam;
+    private Integer useGlobalHeight;
+    private Integer useGlobalSpeed;
+    private Integer useGlobalHeadingParam;
+    private Integer useGlobalTurnParam;
+    private Integer useStraightLine;
+    private Double gimbalPitchAngle;
+
+    private ActionGroup actionGroup;
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/WaylineCoordinateSysParam.java b/src/main/java/com/dji/sample/patches/xml/mode/WaylineCoordinateSysParam.java
new file mode 100644
index 0000000..98aac8b
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/WaylineCoordinateSysParam.java
@@ -0,0 +1,17 @@
+package com.dji.sample.patches.xml.mode;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 11:57
+ */
+@Data
+public class WaylineCoordinateSysParam {
+
+    private String coordinateMode = "WGS84";
+    private String heightMode = "relativeToStartPoint";
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/WaypointHeadingParam.java b/src/main/java/com/dji/sample/patches/xml/mode/WaypointHeadingParam.java
new file mode 100644
index 0000000..c26d3ef
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/WaypointHeadingParam.java
@@ -0,0 +1,20 @@
+package com.dji.sample.patches.xml.mode;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 13:38
+ */
+@Data
+public class WaypointHeadingParam {
+
+    private String waypointHeadingMode;
+    private String waypointHeadingAngle;
+    private String waypointPoiPoint;
+    private String waypointHeadingPathMode;
+    private String waypointHeadingPoiIndex;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/XMLTemplateModel.java b/src/main/java/com/dji/sample/patches/xml/mode/XMLTemplateModel.java
new file mode 100644
index 0000000..5024f60
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/XMLTemplateModel.java
@@ -0,0 +1,98 @@
+package com.dji.sample.patches.xml.mode;
+
+import com.dji.sample.patches.model.entity.LotInfo;
+import com.dji.sample.patches.xml.mode.share.ActionGroup;
+import com.dji.sample.patches.xml.mode.share.ActionMode;
+import com.dji.sample.patches.xml.mode.share.ActionTrigger;
+import com.dji.sample.patches.xml.mode.share.action.utils.*;
+import lombok.Builder;
+import lombok.Data;
+import org.locationtech.jts.geom.Coordinate;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 11:11
+ */
+@Data
+@Builder
+public class XMLTemplateModel {
+
+    private String author = "aix";
+
+    private String createTime;
+
+    private String updateTime;
+
+    private MissionConfig missionConfig;
+
+    private Folder folder;
+
+    public static XMLTemplateModel init(Coordinate[] coordinates,List<LotInfo> lotInfos) {
+
+        Folder folder = FolderUtils.setFloder();
+
+        List<Placemark> placemarkList = new ArrayList<>();
+        int i = 0;
+        for (Coordinate c:coordinates) {
+            if (i != 0) {//去除第一个航点
+                Placemark placemark = PlacemarkUtils.setPlacemark(c.x + "," + c.y);
+
+                // 增加事件组
+                ActionGroup actionGroup = new ActionGroup();
+                actionGroup.setActionGroupId(i);//动作组id从0开始单调连续递增。
+                actionGroup.setActionGroupStartIndex(i);//动作组开始生效的航点
+                actionGroup.setActionGroupEndIndex(i);//动作组结束生效的航点
+                actionGroup.setActionGroupMode("sequence");
+                ActionTrigger at = new ActionTrigger();
+                at.setActionTriggerType("reachPoint");
+                actionGroup.setActionTrigger(at);
+                // 开始增加事件
+                List<ActionMode> list = new ArrayList<>();
+                ActionMode actionMode = new ActionMode();
+                actionMode.setActionId(0);
+                actionMode.setActionActuatorFunc(CameraActionEnum.TAKE_PHOTO.getDescription());//拍照事件
+                // 计算获取图斑编号
+                int quotient = i / 4;
+                if (i % 4 != 0) { // 检查是否有余数
+                    quotient++; // 如果有余数,商加1
+                }
+
+                if (quotient == 0) quotient = 1;
+
+                actionMode.setActionActuatorFuncParam(ActionUtils.setTakePhoto(lotInfos.get(quotient-1).getDkbh()));
+                list.add(actionMode);
+
+                ActionMode actionMode2 = new ActionMode();
+                actionMode2.setActionId(1);
+                actionMode2.setActionActuatorFunc(CameraActionEnum.GIMBAL_ROTATE.getDescription());//拍照事件
+                actionMode2.setActionActuatorFuncParam(ActionUtils.setGimbalRotate());
+                list.add(actionMode2);
+                actionGroup.setActions(list);
+
+                placemark.setActionGroup(actionGroup);
+
+                placemarkList.add(placemark);
+            }
+
+            i = i+1;
+        }
+
+        folder.setPlacemarkList(placemarkList);
+
+        XMLTemplateModel xtm = XMLTemplateModel.builder()
+                .author("Aix")
+                .createTime(String.valueOf(System.currentTimeMillis()))
+                .updateTime(String.valueOf(System.currentTimeMillis()))
+                .missionConfig(MissionConfigUtils.setMissionConfig())
+                .folder(folder)
+                .build();
+
+        return xtm;
+    }
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/ActionGroup.java b/src/main/java/com/dji/sample/patches/xml/mode/share/ActionGroup.java
new file mode 100644
index 0000000..6f3657b
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/ActionGroup.java
@@ -0,0 +1,45 @@
+package com.dji.sample.patches.xml.mode.share;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 13:45
+ */
+@Data
+public class ActionGroup {
+
+    /**
+     * 动作组id
+     * * 注:在一个kmz文件内该ID唯一。建议从0开始单调连续递增。
+     */
+    private Integer actionGroupId;
+    /**
+     * 动作组开始生效的航点
+     */
+    private Integer actionGroupStartIndex;
+    /**
+     * 动作组结束生效的航点
+     * * 注:当“动作组结束生效的航点”与“动作组开始生效的航点”一致,则代表该动作组仅在该航点处生效。
+     * * 注:该元素必须大于等于“actionGroupStartIndex”。
+     */
+    private Integer actionGroupEndIndex;
+    /**
+     * 动作执行模式
+     * sequence:串行执行。即动作组内的动作依次按顺序执行。
+     */
+    private String actionGroupMode = "sequence";
+    /**
+     * 动作组触发器
+     */
+    private ActionTrigger actionTrigger;
+    /**
+     * 动作列表
+     */
+    private List<ActionMode> actions;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/ActionMode.java b/src/main/java/com/dji/sample/patches/xml/mode/share/ActionMode.java
new file mode 100644
index 0000000..bf2c2aa
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/ActionMode.java
@@ -0,0 +1,43 @@
+package com.dji.sample.patches.xml.mode.share;
+
+import com.dji.sample.patches.xml.mode.share.action.param.ActionActuatorFuncParam;
+import com.dji.sample.patches.xml.mode.CameraActionEnum;
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 13:46
+ */
+@Data
+public class ActionMode {
+
+    /**
+     * 动作id
+     * * 注:在一个动作组内该ID唯一。建议从0开始单调连续递增。
+     */
+    private Integer actionId;
+    /**
+     * 动作类型
+     * takePhoto:单拍
+     * startRecord:开始录像
+     * stopRecord:结束录像
+     * focus:对焦
+     * zoom:变焦
+     * customDirName:创建新文件夹
+     * gimbalRotate:旋转云台
+     * rotateYaw:飞行器偏航
+     * hover:悬停等待
+     * gimbalEvenlyRotate:航段间均匀转动云台pitch角
+     * accurateShoot:精准复拍动作(已暂停维护,建议使用orientedShoot)
+     * orientedShoot:精准复拍动作
+     * panoShot:全景拍照动作(仅支持M30/M30T)
+     */
+    private String actionActuatorFunc = CameraActionEnum.TAKE_PHOTO.getDescription();
+    /**
+     * 动作参数
+     */
+    private ActionActuatorFuncParam actionActuatorFuncParam;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/ActionTrigger.java b/src/main/java/com/dji/sample/patches/xml/mode/share/ActionTrigger.java
new file mode 100644
index 0000000..700ed92
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/ActionTrigger.java
@@ -0,0 +1,30 @@
+package com.dji.sample.patches.xml.mode.share;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:09
+ */
+@Data
+public class ActionTrigger {
+
+    /**
+     * 动作触发器类型
+     * reachPoint:到达航点时执行
+     * betweenAdjacentPoints:航段触发,均匀转云台
+     * multipleTiming:等时触发
+     * multipleDistance:等距触发
+     * * 注:“betweenAdjacentPoints”需配合动作"gimbalEvenlyRotate"使用
+     */
+    private String actionTriggerType;
+    /**
+     * 动作触发器参数
+     * > 0
+     * * 注:当“actionTriggerType”为“multipleTiming”时,该元素表示间隔时间,单位是s。当“actionTriggerType”为“multipleDistance”时,该元素表示间隔距离,单位是m。
+     */
+    private String actionTriggerParam;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/AutoRerouteInfo.java b/src/main/java/com/dji/sample/patches/xml/mode/share/AutoRerouteInfo.java
new file mode 100644
index 0000000..1f945da
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/AutoRerouteInfo.java
@@ -0,0 +1,18 @@
+package com.dji.sample.patches.xml.mode.share;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 10:14
+ */
+@Data
+public class AutoRerouteInfo {
+
+    private Integer missionAutoRerouteMode;
+    private Integer transitionalAutoRerouteMode;
+
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/DroneInfo.java b/src/main/java/com/dji/sample/patches/xml/mode/share/DroneInfo.java
new file mode 100644
index 0000000..bef4e14
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/DroneInfo.java
@@ -0,0 +1,18 @@
+package com.dji.sample.patches.xml.mode.share;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION: 无人机参数
+ * @USER: aix
+ * @DATE: 2024/3/27 11:29
+ */
+@Data
+public class DroneInfo {
+
+    private String droneEnumValue = "67";
+    private String droneSubEnumValue = "1";
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/GlobalWaypointHeadingParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/GlobalWaypointHeadingParam.java
new file mode 100644
index 0000000..106d13f
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/GlobalWaypointHeadingParam.java
@@ -0,0 +1,43 @@
+package com.dji.sample.patches.xml.mode.share;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 11:59
+ */
+@Data
+public class GlobalWaypointHeadingParam {
+
+    /**
+     * 飞行器偏航角模式 必需元素
+     * followWayline:沿航线方向。飞行器机头沿着航线方向飞至下一航点
+     * manually:手动控制。飞行器在飞至下一航点的过程中,用户可以手动控制飞行器机头朝向
+     * fixed:锁定当前偏航角。飞行器机头保持执行完航点动作后的飞行器偏航角飞至下一航点
+     * smoothTransition:自定义。通过“wpml:waypointHeadingAngle”给定某航点的目标偏航角,并在航段飞行过程中均匀过渡至下一航点的目标偏航角。
+     * towardPOI:朝向兴趣点
+     */
+    private String waypointHeadingMode;
+    /**
+     * 飞行器偏航角度
+     * 必需元素
+     * * 注:当且仅当“wpml:waypointHeadingMode”为“smoothTransition”时必需
+     */
+    private Integer waypointHeadingAngle;
+    /**
+     * 兴趣点
+     * 仅当wpml:waypointHeadingMode为towardPOI时必需
+     */
+    private String waypointPoiPoint;
+    /**
+     * 飞行器偏航角转动方向 必需元素
+     * clockwise:顺时针旋转飞行器偏航角
+     * counterClockwise:逆时针旋转飞行器偏航角
+     * followBadArc:沿最短路径旋转飞行器偏航角
+     */
+    private String waypointHeadingPathMode;
+    private String waypointHeadingPoiIndex;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/PayloadInfo.java b/src/main/java/com/dji/sample/patches/xml/mode/share/PayloadInfo.java
new file mode 100644
index 0000000..e06a190
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/PayloadInfo.java
@@ -0,0 +1,19 @@
+package com.dji.sample.patches.xml.mode.share;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION: 云台参数
+ * @USER: aix
+ * @DATE: 2024/3/27 11:30
+ */
+@Data
+public class PayloadInfo {
+
+    private String payloadEnumValue = "53";
+    private String payloadSubEnumValue = "0";
+    private String payloadPositionIndex = "0";
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/PayloadParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/PayloadParam.java
new file mode 100644
index 0000000..cb55b27
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/PayloadParam.java
@@ -0,0 +1,76 @@
+package com.dji.sample.patches.xml.mode.share;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 17:07
+ */
+@Data
+@Builder
+public class PayloadParam {
+
+    /**
+     * 负载挂载位置
+     * 0:飞行器1号挂载位置。M300 RTK,M350 RTK机型,对应机身左前方。其它机型,对应主云台。
+     * 1:飞行器2号挂载位置。M300 RTK,M350 RTK机型,对应机身右前方。
+     * 2:飞行器3号挂载位置。M300 RTK,M350 RTK机型,对应机身上方。
+     */
+    private Integer payloadPositionIndex;
+    /**
+     * 负载对焦模式
+     * firstPoint:首个航点自动对焦
+     * custom:标定对焦值对焦
+     */
+    private String focusMode;
+    /**
+     * 负载测光模式
+     * average:全局测光
+     * spot:点测光
+     */
+    private String meteringMode;
+    /**
+     * 是否开启畸变矫正
+     * 0:不开启
+     * 1:开启
+     */
+    private Integer dewarpingEnable = 0;
+    /**
+     * 激光雷达回波模式
+     * singleReturnStrongest:单回波
+     * dualReturn:双回波
+     * tripleReturn:三回波
+     */
+    private String returnMode;
+    /**
+     * 负载采样率
+     * 60000,80000,120000,160000,180000,240000
+     */
+    private String samplingRate;
+    /**
+     * 负载扫描模式
+     * repetitive:重复扫描
+     * nonRepetitive:非重复扫描
+     */
+    private String scanningMode;
+    /**
+     * 真彩上色
+     * 	0: 不上色
+     * 1: 真彩上色
+     */
+    private Integer modelColoringEnable = 0;
+    /**
+     * 图片格式列表
+     * wide:存储广角镜头照片
+     * zoom:存储变焦镜头照片
+     * ir:存储红外镜头照片
+     * narrow_band: 存储窄带镜头拍摄照片
+     * visable:可见光照片
+     *  注:存储多个镜头照片,格式如“<wpml:imageFormat>wide,ir</wpml:imageFormat>
+     */
+    private String imageFormat;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/WaypointTurnParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/WaypointTurnParam.java
new file mode 100644
index 0000000..c6b7156
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/WaypointTurnParam.java
@@ -0,0 +1,35 @@
+package com.dji.sample.patches.xml.mode.share;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 13:38
+ */
+@Data
+public class WaypointTurnParam {
+
+    /**
+     * 必须元素
+     * 航点类型(航点转弯模式)
+     * coordinateTurn:协调转弯,不过点,提前转弯
+     * toPointAndStopWithDiscontinuityCurvature:直线飞行,飞行器到点停
+     * toPointAndStopWithContinuityCurvature:曲线飞行,飞行器到点停
+     * toPointAndPassWithContinuityCurvature:曲线飞行,飞行器过点不停
+     * 注:DJI Pilot 2/司空 2 上“平滑过点,提前转弯”模式设置方法为:
+     * 1)将wpml:waypointTurnMode设置为toPointAndPassWithContinuityCurvature
+     * 2)将wpml:useStraightLine设置为1
+     */
+    private String waypointTurnMode;
+    /**
+     * 航点转弯截距
+     * (0, 航段最大长度]
+     * * 注:两航点间航段长度必需大于两航点转弯截距之和。此元素定义了飞行器在距离该航点若干米前,提前多少距离转弯
+     * 必须元素
+     * * 注:当且仅当以下两种情况下必需“wpml:waypointTurnMode”为“coordinateTurn”“wpml:waypointTurnMode”为“toPointAndPassWithContinuityCurvature”,且“wpml:useStraightLine”为“1”
+     */
+    private String waypointTurnDampingDist;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/ActionActuatorFuncParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/ActionActuatorFuncParam.java
new file mode 100644
index 0000000..9db3c15
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/ActionActuatorFuncParam.java
@@ -0,0 +1,55 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import com.dji.sample.patches.xml.mode.CameraActionEnum;
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/27 13:47
+ */
+@Data
+public class ActionActuatorFuncParam {
+
+    /**
+     * 负载挂载位置
+     * 0:飞行器1号挂载位置。M300 RTK,M350 RTK机型,对应机身左前方。其它机型,对应主云台。
+     * 1:飞行器2号挂载位置。M300 RTK,M350 RTK机型,对应机身右前方。
+     * 2:飞行器3号挂载位置。M300 RTK,M350 RTK机型,对应机身上方。
+     */
+    private Integer payloadPositionIndex;
+
+    public static ActionActuatorFuncParam createActionActuatorFuncParam(CameraActionEnum type) {
+
+        switch (type) {
+            case TAKE_PHOTO:
+                return new TakePhotoParam();
+            case START_RECORD:
+                return new StartRecordParam();
+            case STOP_RECORD:
+                return new StopRecordParam();
+            case FOCUS:
+                return new FocusParam();
+            case ZOOM:
+                return new ZoomParam();
+            case CUSTOM_DIR_NAME:
+                return new CustomDirNameParam();
+            case GIMBAL_ROTATE:
+                return new GimbalRotateParam();
+            case GIMBAL_EVENLY_ROTATE:
+                return new GimbalEvenlyRotateParam();
+            case ROTATE_YAW:
+                return new RotateYawParam();
+            case HOVER:
+                return new HoverParam();
+            case ORIENTED_SHOOT:
+                return new OrientedShootParam();
+            case PANO_SHOT:
+                return new PanoShotParam();
+            default:
+                throw new IllegalStateException("Unexpected value: " + type);
+        }
+    }
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/CustomDirNameParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/CustomDirNameParam.java
new file mode 100644
index 0000000..c85983d
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/CustomDirNameParam.java
@@ -0,0 +1,19 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:45
+ */
+@Data
+public class CustomDirNameParam extends ActionActuatorFuncParam {
+
+    /**
+     * 新文件夹的名称
+     */
+    private String directoryName;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/FocusParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/FocusParam.java
new file mode 100644
index 0000000..8b92bd5
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/FocusParam.java
@@ -0,0 +1,44 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:43
+ */
+@Data
+public class FocusParam extends ActionActuatorFuncParam {
+    /**
+     * 是否点对焦
+     * 0:区域对焦 1:点对焦
+     */
+    private Integer isPointFocus;
+    /**
+     * 对焦点位置
+     * * 注:对焦点或对焦区域左上角在画面的X轴(宽)坐标。0为最左侧,1为最右侧。
+     */
+    private Double focusX;
+    /**
+     * 对焦点位置
+     * 注:对焦点或对焦区域左上角在画面的Y轴(高)坐标。0为最上方,1为最下方。
+     */
+    private Double focusY;
+    /**
+     * 对焦区域宽度比
+     * 注:对焦区域大小占画面整体的比例,此为宽度比
+     */
+    private Double focusRegionWidth;
+    /**
+     * 对焦区域高度比
+     * 注:对焦区域大小占画面整体的比例,此为高度比
+     */
+    private Double focusRegionHeight;
+    /**
+     * 是否无穷远对焦
+     * 0: 非无穷远对焦 1: 无穷远对焦
+     */
+    private Integer isInfiniteFocus;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/GimbalEvenlyRotateParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/GimbalEvenlyRotateParam.java
new file mode 100644
index 0000000..b06329a
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/GimbalEvenlyRotateParam.java
@@ -0,0 +1,20 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:51
+ */
+@Data
+public class GimbalEvenlyRotateParam extends ActionActuatorFuncParam {
+
+    /**
+     * 云台Pitch转动角度
+     * 注:不同云台可转动范围不同
+     */
+    private Double gimbalPitchRotateAngle;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/GimbalRotateParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/GimbalRotateParam.java
new file mode 100644
index 0000000..47383f3
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/GimbalRotateParam.java
@@ -0,0 +1,68 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:46
+ */
+@Data
+public class GimbalRotateParam extends ActionActuatorFuncParam {
+
+    /**
+     * 云台偏航角转动坐标系
+     * north:相对地理北
+     */
+    private String gimbalHeadingYawBase;
+    /**
+     * 云台转动模式
+     * absoluteAngle:绝对角度,相对于正北方的角度
+     */
+    private String gimbalRotateMode;
+    /**
+     * 是否使能云台Pitch转动
+     * 0:不使能
+     * 1:使能
+     */
+    private Integer gimbalPitchRotateEnable;
+    /**
+     * 云台Pitch转动角度
+     *  注:不同云台可转动范围不同
+     */
+    private Double gimbalPitchRotateAngle;
+    /**
+     * 是否使能云台Roll转动
+     * 0:不使能
+     * 1:使能
+     */
+    private Integer gimbalRollRotateEnable;
+    /**
+     * 云台Roll转动角度
+     * 注:不同云台可转动范围不同
+     */
+    private Double gimbalRollRotateAngle;
+    /**
+     * 是否使能云台Yaw转动
+     * 0:不使能
+     * 1:使能
+     */
+    private Integer gimbalYawRotateEnable;
+    /**
+     * 云台Yaw转动角度
+     * 注:不同云台可转动范围不同
+     */
+    private Double gimbalYawRotateAngle;
+    /**
+     * 是否使能云台转动时间
+     * 0:不使能
+     * 1:使能
+     */
+    private Integer gimbalRotateTimeEnable;
+    /**
+     * 云台完成转动用时
+     */
+    private Double gimbalRotateTime;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/HoverParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/HoverParam.java
new file mode 100644
index 0000000..2c159d1
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/HoverParam.java
@@ -0,0 +1,19 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:55
+ */
+@Data
+public class HoverParam extends ActionActuatorFuncParam {
+
+    /**
+     * 飞行器悬停等待时间 s
+     */
+    private Double hoverTime;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/OrientedShootParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/OrientedShootParam.java
new file mode 100644
index 0000000..9fdbdb1
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/OrientedShootParam.java
@@ -0,0 +1,152 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:57
+ */
+@Data
+public class OrientedShootParam extends ActionActuatorFuncParam {
+
+    /**
+     * 云台Pitch转动角度
+     */
+    private Double gimbalPitchRotateAngle;
+    /**
+     * 云台Yaw转动角度
+     * 注:M3E/M3T,M3D/M3TD 机型 wpml:gimbalYawRotateAngle 与 wpml:aircraftHeading 需保持一致
+     */
+    private Double gimbalYawRotateAngle;
+    /**
+     * 目标选中框中心水平坐标
+     * 注:照片左上角为坐标原点,水平方向为X轴,竖直方向为Y轴
+     */
+    private Integer focusX;
+    /**
+     * 目标选中框中心竖直坐标
+     * 注:照片左上角为坐标原点,水平方向为X轴,竖直方向为Y轴
+     */
+    private Integer focusY;
+    /**
+     * 目标选中框宽
+     */
+    private Integer focusRegionWidth;
+    /**
+     * 目标选中框高
+     */
+    private Integer focusRegionHeight;
+    /**
+     * 变焦焦距
+     */
+    private Double focalLength;
+    /**
+     * 飞行器目标偏航角(相对于地理北)
+     * *注:飞行器旋转至该目标偏航角。0°为正北方向,90°为正东方向,-90°为正西方向,-180°/180°为正南方向
+     * *注:M3E/M3T,M3D/M3TD 机型 wpml:gimbalYawRotateAngle 与 wpml:aircraftHeading 需保持一致
+     */
+    private Double aircraftHeading;
+    /**
+     * 是否框选精准复拍目标
+     * 1: 已框选目标物
+     * 0: 未框选目标物
+     * *注:该值设置为1,复拍时飞行器会自主寻找目标进行拍摄。该值设置为0,复拍时飞行器只会按照飞行器姿态和负载姿态进行动作重复,不会自主寻找目标
+     */
+    private Integer accurateFrameValid;
+    /**
+     * 拍摄照片存储类型
+     * zoom: 存储变焦镜头拍摄照片
+     * wide: 存储广角镜头拍摄照片
+     * ir: 存储红外镜头拍摄照片
+     * visable:可见光照片
+     * *注:存储多个镜头照片,格式如“<wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>”表示同时使用广角、红外镜头
+     */
+    private String payloadLensIndex;
+    /**
+     * 是否使用全局存储类型
+     * 0:不使用全局设置
+     * 1:使用全局设置
+     */
+    private Integer useGlobalPayloadLensIndex;
+    /**
+     * 目标框角度
+     * *注:目标框的旋转角度(以Y轴为基准,顺时针旋转)
+     */
+    private Double targetAngle;
+    /**
+     * 动作唯一标识
+     * *注:拍照时,该值将被写入照片文件中,用于关联动作和照片文件
+     */
+    private String actionUUID;
+    /**
+     * 照片宽度
+     */
+    private Integer imageWidth;
+    /**
+     * 照片高度
+     */
+    private Integer imageHeight;
+    /**
+     * AF电机位置
+     */
+    private Integer AFPos;
+    /**
+     * 云台端口号
+     * 拍摄照片的相机安装位置
+     * *注:M30/M30T机型该值固定为0
+     */
+    private Integer gimbalPort;
+    /**
+     * 相机类型
+     * 52(机型:M30双光相机),
+     * 53(机型:M30T三光相机)
+     * 66(机型:Mavic 3E 相机)
+     * 67(机型:Mavic 3T 相机)
+     * 80(机型:Matrice 3D 相机)
+     * 81(机型:Matrice 3TD 相机)
+     */
+    private Integer orientedCameraType;
+    /**
+     * 照片文件路径
+     *
+     */
+    private String orientedFilePath;
+    /**
+     * 照片文件MD5
+     */
+    private String orientedFileMD5;
+    /**
+     * 照片文件大小
+     */
+    private Integer orientedFileSize;
+    /**
+     * 照片文件后缀
+     */
+    private String orientedFileSuffix;
+    /**
+     * 光圈大小
+     * *注:该值为真实光圈x100
+     */
+    private Integer orientedCameraApertue;
+    /**
+     * 环境亮度
+     */
+    private Integer orientedCameraLuminance;
+    /**
+     * 快门时间
+     */
+    private Double orientedCameraShutterTime;
+    /**
+     * ISO
+     */
+    private Integer orientedCameraISO;
+    /**
+     * 拍照模式
+     * normalPhoto: 普通拍照
+     * lowLightSmartShooting:低光智能拍照
+     */
+    private String orientedPhotoMode;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/PanoShotParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/PanoShotParam.java
new file mode 100644
index 0000000..f9f1d96
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/PanoShotParam.java
@@ -0,0 +1,36 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 13:49
+ */
+@Data
+public class PanoShotParam extends ActionActuatorFuncParam {
+
+    /**
+     * 拍摄照片存储类型
+     * zoom: 存储变焦镜头拍摄照片
+     * wide: 存储广角镜头拍摄照片
+     * ir: 存储红外镜头拍摄照片
+     * narrow_band: 存储窄带镜头拍摄照片
+     * visable:可见光照片
+     * 注:存储多个镜头照片,格式如“<wpml:payloadLensIndex>wide,ir,narrow_band</wpml:payloadLensIndex>”表示同时使用广角、红外和窄带镜头
+     */
+    private String payloadLensIndex;
+    /**
+     * 是否使用全局存储类型
+     * 0:不使用全局设置
+     * 1:使用全局设置
+     */
+    private Integer useGlobalPayloadLensIndex;
+    /**
+     * 全景拍照模式
+     * panoShot_360:全景模式
+     */
+    private String panoShotSubMode;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/RotateYawParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/RotateYawParam.java
new file mode 100644
index 0000000..5440be9
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/RotateYawParam.java
@@ -0,0 +1,27 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:54
+ */
+@Data
+public class RotateYawParam extends ActionActuatorFuncParam {
+
+    /**
+     * 飞行器目标偏航角(相对于地理北)
+     * 注:飞行器旋转至该目标偏航角。0°为正北方向,90°为正东方向,-90°为正西方向,-180°/180°为正南方向。
+     */
+    private Double aircraftHeading;
+
+    /**
+     * 飞行器偏航角转动模式
+     * clockwise:顺时针旋转
+     * counterClockwise:逆时针旋转
+     */
+    private String aircraftPathMode;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/StartRecordParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/StartRecordParam.java
new file mode 100644
index 0000000..3161471
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/StartRecordParam.java
@@ -0,0 +1,34 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:41
+ */
+@Data
+public class StartRecordParam extends ActionActuatorFuncParam {
+    /**
+     * 拍摄照片文件后缀
+     * 为生成媒体文件命名时将额外附带该后缀
+     */
+    private String fileSuffix;
+    /**
+     * 拍摄照片存储类型
+     * zoom: 存储变焦镜头拍摄照片
+     * wide: 存储广角镜头拍摄照片
+     * ir: 存储红外镜头拍摄照片
+     * narrow_band: 存储窄带镜头拍摄照片
+     * visable:可见光照片
+     * 注:存储多个镜头照片,格式如“<wpml:payloadLensIndex>wide,ir,narrow_band</wpml:payloadLensIndex>”表示同时使用广角、红外和窄带镜头
+     */
+    private String payloadLensIndex;
+    /**
+     * 是否使用全局存储类型
+     * 0:不使用全局设置
+     * 1:使用全局设置
+     */
+    private Integer useGlobalPayloadLensIndex;
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/StopRecordParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/StopRecordParam.java
new file mode 100644
index 0000000..e363365
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/StopRecordParam.java
@@ -0,0 +1,25 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:42
+ */
+@Data
+public class StopRecordParam extends ActionActuatorFuncParam {
+
+    /**
+     * 拍摄照片存储类型
+     * zoom: 存储变焦镜头拍摄照片
+     * wide: 存储广角镜头拍摄照片
+     * ir: 存储红外镜头拍摄照片
+     * narrow_band: 存储窄带镜头拍摄照片
+     * visable:可见光照片
+     * 注:存储多个镜头照片,格式如“<wpml:payloadLensIndex>wide,ir,narrow_band</wpml:payloadLensIndex>”表示同时使用广角、红外和窄带镜头
+     */
+    private String payloadLensIndex;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/TakePhotoParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/TakePhotoParam.java
new file mode 100644
index 0000000..a9d0beb
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/TakePhotoParam.java
@@ -0,0 +1,36 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:39
+ */
+@Data
+public class TakePhotoParam extends ActionActuatorFuncParam {
+
+    /**
+     * 拍摄照片文件后缀
+     * 为生成媒体文件命名时将额外附带该后缀
+     */
+    private String fileSuffix;
+    /**
+     * 拍摄照片存储类型
+     * zoom: 存储变焦镜头拍摄照片
+     * wide: 存储广角镜头拍摄照片
+     * ir: 存储红外镜头拍摄照片
+     * narrow_band: 存储窄带镜头拍摄照片
+     * visable:可见光照片
+     * 注:存储多个镜头照片,格式如“<wpml:payloadLensIndex>wide,ir,narrow_band</wpml:payloadLensIndex>”表示同时使用广角、红外和窄带镜头
+     */
+    private String payloadLensIndex;
+    /**
+     * 是否使用全局存储类型
+     * 0:不使用全局设置
+     * 1:使用全局设置
+     */
+    private Integer useGlobalPayloadLensIndex;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/ZoomParam.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/ZoomParam.java
new file mode 100644
index 0000000..eb27695
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/param/ZoomParam.java
@@ -0,0 +1,19 @@
+package com.dji.sample.patches.xml.mode.share.action.param;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/28 11:44
+ */
+@Data
+public class ZoomParam extends ActionActuatorFuncParam {
+
+    /**
+     * 变焦焦距
+     */
+    private Double focalLength;
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/ActionUtils.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/ActionUtils.java
new file mode 100644
index 0000000..322e9bd
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/ActionUtils.java
@@ -0,0 +1,71 @@
+package com.dji.sample.patches.xml.mode.share.action.utils;
+
+import com.dji.sample.patches.xml.mode.share.action.param.GimbalRotateParam;
+import com.dji.sample.patches.xml.mode.share.action.param.StartRecordParam;
+import com.dji.sample.patches.xml.mode.share.action.param.StopRecordParam;
+import com.dji.sample.patches.xml.mode.share.action.param.TakePhotoParam;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/29 9:28
+ */
+public class ActionUtils {
+
+    /**
+     * 设置单拍事件
+     * @return
+     */
+    public static TakePhotoParam setTakePhoto(String dkbh) {
+        TakePhotoParam takePhotoParam = new TakePhotoParam();
+        takePhotoParam.setFileSuffix("航点" + dkbh);
+        takePhotoParam.setPayloadLensIndex("wide,ir");
+        takePhotoParam.setUseGlobalPayloadLensIndex(1);
+        takePhotoParam.setPayloadPositionIndex(0);
+        return takePhotoParam;
+    }
+
+    /**
+     *  设置开始录像事件
+     * @return
+     */
+    public static StartRecordParam setStartRecord() {
+        StartRecordParam startRecordParam = new StartRecordParam();
+        startRecordParam.setFileSuffix("航点");
+        startRecordParam.setPayloadLensIndex("wide,ir");
+        startRecordParam.setUseGlobalPayloadLensIndex(1);
+        startRecordParam.setPayloadPositionIndex(0);
+        return startRecordParam;
+    }
+
+    /**
+     *  设置结束录像事件
+     * @return
+     */
+    public static StopRecordParam setStopRecord() {
+        StopRecordParam stopRecordParam = new StopRecordParam();
+        stopRecordParam.setPayloadLensIndex("wide,ir");
+        return stopRecordParam;
+    }
+
+    /**
+     * 设置旋转云台
+     * @return
+     */
+    public static GimbalRotateParam setGimbalRotate() {
+        GimbalRotateParam gimbalRotateParam = new GimbalRotateParam();
+        gimbalRotateParam.setGimbalHeadingYawBase("north");
+        gimbalRotateParam.setGimbalRotateMode("absoluteAngle");
+        gimbalRotateParam.setGimbalPitchRotateEnable(1);
+        gimbalRotateParam.setGimbalPitchRotateAngle(-83D);
+        gimbalRotateParam.setGimbalRollRotateEnable(0);
+        gimbalRotateParam.setGimbalRollRotateAngle(0D);
+        gimbalRotateParam.setGimbalYawRotateEnable(0);
+        gimbalRotateParam.setGimbalYawRotateAngle(0D);
+        gimbalRotateParam.setGimbalRotateTimeEnable(0);
+        gimbalRotateParam.setGimbalRotateTime(0D);
+        return gimbalRotateParam;
+    }
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/FolderUtils.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/FolderUtils.java
new file mode 100644
index 0000000..9a6d58a
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/FolderUtils.java
@@ -0,0 +1,47 @@
+package com.dji.sample.patches.xml.mode.share.action.utils;
+
+import com.dji.sample.patches.xml.mode.Folder;
+import com.dji.sample.patches.xml.mode.WaylineCoordinateSysParam;
+import com.dji.sample.patches.xml.mode.share.GlobalWaypointHeadingParam;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION: 设置模板信息
+ * @USER: aix
+ * @DATE: 2024/3/29 10:25
+ */
+public class FolderUtils {
+
+    public static Folder setFloder() {
+        Folder folder = new Folder();
+        folder.setPayloadParam(PayloadParamUtils.setPayloadParam());
+        folder.setWaylineCoordinateSysParam(new WaylineCoordinateSysParam());
+        folder.setTemplateType("waypoint");//航点模式
+        folder.setTemplateId("0");
+
+        WaylineCoordinateSysParam wcs = new WaylineCoordinateSysParam();
+        wcs.setCoordinateMode("WGS84");
+        wcs.setHeightMode("relativeToStartPoint");
+
+        folder.setWaylineCoordinateSysParam(wcs);
+        folder.setAutoFlightSpeed(10D);//全局航线飞行速度
+        folder.setGlobalHeight(100D); //全局航线高度(相对起飞点高度)
+        folder.setCaliFlightEnable(0);// 是否开启标定飞行
+        folder.setGimbalPitchMode("manual");//云台俯仰角控制模式manual:手动控制。飞行器从一个航点飞向下一个航点的过程中,支持用户手动控制云台的俯仰角度。若无用户控制,则保持飞离航点时的云台俯仰角度。 usePointSetting:依照每个航点设置。飞行器从一个航点飞向下一个航点的过程中,云台俯仰角均匀过渡至下一个航点的俯仰角。
+
+        //
+        GlobalWaypointHeadingParam gwhp = new GlobalWaypointHeadingParam();
+        gwhp.setWaypointHeadingMode("followWayline");
+        gwhp.setWaypointHeadingAngle(0);
+        gwhp.setWaypointPoiPoint("0.000000,0.000000,0.000000");
+        gwhp.setWaypointHeadingPathMode("followBadArc");
+        gwhp.setWaypointHeadingPoiIndex("0");
+
+        folder.setGlobalWaypointHeadingParam(gwhp);
+        folder.setGlobalWaypointTurnMode("toPointAndStopWithDiscontinuityCurvature");
+        folder.setGlobalUseStraightLine(1);
+
+        return folder;
+    }
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/MissionConfigUtils.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/MissionConfigUtils.java
new file mode 100644
index 0000000..d925e2a
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/MissionConfigUtils.java
@@ -0,0 +1,31 @@
+package com.dji.sample.patches.xml.mode.share.action.utils;
+
+import com.dji.sample.patches.xml.mode.MissionConfig;
+import com.dji.sample.patches.xml.mode.share.DroneInfo;
+import com.dji.sample.patches.xml.mode.share.PayloadInfo;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION: 设置任务信息
+ * @USER: aix
+ * @DATE: 2024/3/29 11:10
+ */
+public class MissionConfigUtils {
+
+    public static MissionConfig setMissionConfig() {
+        MissionConfig mc = MissionConfig.builder()
+                .flyToWaylineMode("safely")//安全模式
+                .finishAction("goHome")
+                .exitOnRCLost("executeLostAction")//退出航线,执行失控动作
+                .executeRCLostAction("goBack")
+                .takeOffSecurityHeight(20D)//安全起飞高度
+                .globalTransitionalSpeed(10D)
+                .globalRTHHeight(100D)
+                .droneInfo(new DroneInfo())
+                .payloadInfo(new PayloadInfo())
+                .build();
+
+        return mc;
+    }
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/PayloadParamUtils.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/PayloadParamUtils.java
new file mode 100644
index 0000000..49ed8c1
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/PayloadParamUtils.java
@@ -0,0 +1,21 @@
+package com.dji.sample.patches.xml.mode.share.action.utils;
+
+import com.dji.sample.patches.xml.mode.share.PayloadParam;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/29 11:44
+ */
+public class PayloadParamUtils {
+
+    public static PayloadParam setPayloadParam() {
+        PayloadParam pp = PayloadParam.builder()
+                .payloadPositionIndex(0)
+                .imageFormat("wide,ir")
+                .build();
+        return pp;
+    }
+
+}
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/PlacemarkUtils.java b/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/PlacemarkUtils.java
new file mode 100644
index 0000000..04dca1d
--- /dev/null
+++ b/src/main/java/com/dji/sample/patches/xml/mode/share/action/utils/PlacemarkUtils.java
@@ -0,0 +1,28 @@
+package com.dji.sample.patches.xml.mode.share.action.utils;
+
+import com.dji.sample.patches.xml.mode.Placemark;
+import com.dji.sample.patches.xml.mode.WaypointHeadingParam;
+
+/**
+ * @PROJECT_NAME: drone
+ * @DESCRIPTION: 航点设置
+ * @USER: aix
+ * @DATE: 2024/3/29 9:47
+ */
+public class PlacemarkUtils {
+
+    public static Placemark setPlacemark(String xy) {
+        Placemark placemark = new Placemark();
+        placemark.setCoordinates(xy);
+        placemark.setEllipsoidHeight(100D);
+        placemark.setHeight(100D);
+        placemark.setUseGlobalHeight(1);
+        placemark.setUseGlobalSpeed(1);
+        placemark.setUseGlobalHeadingParam(1);
+        placemark.setUseGlobalTurnParam(1);
+        placemark.setGimbalPitchAngle(0D);
+
+        return placemark;
+    }
+
+}
diff --git a/src/main/resources/template/newtemplate.xml b/src/main/resources/template/newtemplate.xml
new file mode 100644
index 0000000..bd2209a
--- /dev/null
+++ b/src/main/resources/template/newtemplate.xml
@@ -0,0 +1,868 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.3">
+  <Document>
+    <!-- 步骤1:实现文件创建信息 -->
+    <wpml:author>Aix</wpml:author>
+    <wpml:createTime>1711938126849</wpml:createTime>
+    <wpml:updateTime>1711938126849</wpml:updateTime>
+    <!-- 步骤2:设置任务配置 -->
+    <wpml:missionConfig>
+      <wpml:flyToWaylineMode>safely</wpml:flyToWaylineMode>
+      <wpml:finishAction>goHome</wpml:finishAction>
+      <wpml:exitOnRCLost>executeLostAction</wpml:exitOnRCLost>
+      <wpml:executeRCLostAction>goBack</wpml:executeRCLostAction>
+      <wpml:takeOffSecurityHeight>20</wpml:takeOffSecurityHeight>
+      <wpml:takeOffRefPoint></wpml:takeOffRefPoint>
+      <wpml:takeOffRefPointAGLHeight></wpml:takeOffRefPointAGLHeight>
+      <wpml:globalTransitionalSpeed>10</wpml:globalTransitionalSpeed>
+      <wpml:globalRTHHeight>100</wpml:globalRTHHeight>
+      <wpml:droneInfo>
+        <!-- 用M30申报无人机型号 -->
+        <wpml:droneEnumValue>67</wpml:droneEnumValue>
+        <wpml:droneSubEnumValue>1</wpml:droneSubEnumValue>
+      </wpml:droneInfo>
+      <wpml:payloadInfo>
+        <!-- 用M30声明有效载荷模型 -->
+        <wpml:payloadEnumValue>53</wpml:payloadEnumValue>
+        <wpml:payloadSubEnumValue>0</wpml:payloadSubEnumValue>
+        <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+      </wpml:payloadInfo>
+    </wpml:missionConfig>
+    <!-- 步骤3:设置路径点模板文件夹 -->
+    <Folder>
+      <wpml:templateType>waypoint</wpml:templateType>
+      <wpml:templateId>0</wpml:templateId>
+      <wpml:waylineCoordinateSysParam>
+        <wpml:coordinateMode>WGS84</wpml:coordinateMode>
+        <wpml:heightMode>relativeToStartPoint</wpml:heightMode>
+      </wpml:waylineCoordinateSysParam>
+      <wpml:autoFlightSpeed>10</wpml:autoFlightSpeed>
+      <wpml:globalHeight>100</wpml:globalHeight>
+      <wpml:caliFlightEnable>0</wpml:caliFlightEnable>
+      <wpml:gimbalPitchMode>manual</wpml:gimbalPitchMode>
+      <wpml:globalWaypointHeadingParam>
+        <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+        <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+        <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+        <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+        <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+      </wpml:globalWaypointHeadingParam>
+      <wpml:globalWaypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:globalWaypointTurnMode>
+      <wpml:globalUseStraightLine>1</wpml:globalUseStraightLine>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.86002109342,28.6202713913694
+            </coordinates>
+          </Point>
+          <wpml:index>0</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>1</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>1</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>1</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.86002109342,28.6142037658042
+            </coordinates>
+          </Point>
+          <wpml:index>1</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>2</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>2</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>2</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.866374254306,28.6142037658042
+            </coordinates>
+          </Point>
+          <wpml:index>2</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>3</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>3</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>3</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.866374254306,28.6202713913694
+            </coordinates>
+          </Point>
+          <wpml:index>3</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>4</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>4</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>4</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.86425430209,28.6357383285408
+            </coordinates>
+          </Point>
+          <wpml:index>4</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>5</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>5</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>5</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.86425430209,28.633120921433
+            </coordinates>
+          </Point>
+          <wpml:index>5</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>6</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>6</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>6</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.866977149064,28.633120921433
+            </coordinates>
+          </Point>
+          <wpml:index>6</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>7</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>7</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>7</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.866977149064,28.6357383285408
+            </coordinates>
+          </Point>
+          <wpml:index>7</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>8</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>8</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>8</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.838147600941,28.618654178036
+            </coordinates>
+          </Point>
+          <wpml:index>8</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>9</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>9</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>9</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.838147600941,28.6160843601496
+            </coordinates>
+          </Point>
+          <wpml:index>9</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>10</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>10</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>10</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.841288489469,28.6160843601496
+            </coordinates>
+          </Point>
+          <wpml:index>10</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>11</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>11</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>11</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.841288489469,28.618654178036
+            </coordinates>
+          </Point>
+          <wpml:index>11</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>12</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>12</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>12</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+      <!-- 负载设置 -->
+      <wpml:payloadParam>
+        <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+        <wpml:focusMode></wpml:focusMode>
+        <wpml:meteringMode></wpml:meteringMode>
+        <wpml:returnMode></wpml:returnMode>
+        <wpml:samplingRate></wpml:samplingRate>
+        <wpml:scanningMode></wpml:scanningMode>
+        <wpml:imageFormat>wide,ir</wpml:imageFormat>
+      </wpml:payloadParam>
+    </Folder>
+  </Document>
+</kml>
diff --git a/src/main/resources/template/newwaylines.xml b/src/main/resources/template/newwaylines.xml
new file mode 100644
index 0000000..44a725c
--- /dev/null
+++ b/src/main/resources/template/newwaylines.xml
@@ -0,0 +1,725 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.3">
+  <Document>
+    <wpml:missionConfig>
+      <wpml:flyToWaylineMode>safely</wpml:flyToWaylineMode>
+      <wpml:finishAction>goHome</wpml:finishAction>
+      <wpml:exitOnRCLost>executeLostAction</wpml:exitOnRCLost>
+      <wpml:executeRCLostAction>goBack</wpml:executeRCLostAction>
+      <wpml:takeOffSecurityHeight>20</wpml:takeOffSecurityHeight>
+      <wpml:globalTransitionalSpeed>10</wpml:globalTransitionalSpeed>
+      <wpml:globalRTHHeight>100</wpml:globalRTHHeight>
+      <wpml:droneInfo>
+        <wpml:droneEnumValue>67</wpml:droneEnumValue>
+        <wpml:droneSubEnumValue>1</wpml:droneSubEnumValue>
+      </wpml:droneInfo>
+      <wpml:payloadInfo>
+        <wpml:payloadEnumValue>53</wpml:payloadEnumValue>
+        <wpml:payloadSubEnumValue>0</wpml:payloadSubEnumValue>
+        <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+      </wpml:payloadInfo>
+    </wpml:missionConfig>
+    <Folder>
+      <wpml:templateId>0</wpml:templateId>
+      <wpml:executeHeightMode>relativeToStartPoint</wpml:executeHeightMode>
+      <wpml:waylineId>0</wpml:waylineId>
+      <wpml:autoFlightSpeed>10</wpml:autoFlightSpeed>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.86002109342,28.6202713913694
+            </coordinates>
+          </Point>
+          <wpml:index>0</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>1</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>1</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>1</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.86002109342,28.6142037658042
+            </coordinates>
+          </Point>
+          <wpml:index>1</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>2</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>2</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>2</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.866374254306,28.6142037658042
+            </coordinates>
+          </Point>
+          <wpml:index>2</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>3</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>3</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>3</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.866374254306,28.6202713913694
+            </coordinates>
+          </Point>
+          <wpml:index>3</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>4</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>4</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>4</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.86425430209,28.6357383285408
+            </coordinates>
+          </Point>
+          <wpml:index>4</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>5</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>5</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>5</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.86425430209,28.633120921433
+            </coordinates>
+          </Point>
+          <wpml:index>5</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>6</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>6</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>6</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.866977149064,28.633120921433
+            </coordinates>
+          </Point>
+          <wpml:index>6</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>7</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>7</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>7</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.866977149064,28.6357383285408
+            </coordinates>
+          </Point>
+          <wpml:index>7</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>8</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>8</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>8</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.838147600941,28.618654178036
+            </coordinates>
+          </Point>
+          <wpml:index>8</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>9</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>9</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>9</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.838147600941,28.6160843601496
+            </coordinates>
+          </Point>
+          <wpml:index>9</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>10</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>10</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>10</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.841288489469,28.6160843601496
+            </coordinates>
+          </Point>
+          <wpml:index>10</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>11</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>11</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>11</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              115.841288489469,28.618654178036
+            </coordinates>
+          </Point>
+          <wpml:index>11</wpml:index>
+          <wpml:executeHeight>100</wpml:executeHeight>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>0</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>1</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>12</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>12</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>12</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <wpml:action>
+              <wpml:actionId>0</wpml:actionId>
+              <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <wpml:action>
+              <wpml:actionId>1</wpml:actionId>
+              <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+    </Folder>
+  </Document>
+</kml>
diff --git a/src/main/resources/template/template.kml b/src/main/resources/template/template.kml
new file mode 100644
index 0000000..b18a950
--- /dev/null
+++ b/src/main/resources/template/template.kml
@@ -0,0 +1,868 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.3">
+  <Document>
+    <!-- 步骤1:实现文件创建信息 -->
+    <wpml:author>Aix</wpml:author>
+    <wpml:createTime>1711701361124</wpml:createTime>
+    <wpml:updateTime>1711701361124</wpml:updateTime>
+    <!-- 步骤2:设置任务配置 -->
+    <wpml:missionConfig>
+      <wpml:flyToWaylineMode>safely</wpml:flyToWaylineMode>
+      <wpml:finishAction>goHome</wpml:finishAction>
+      <wpml:exitOnRCLost>executeLostAction</wpml:exitOnRCLost>
+      <wpml:executeRCLostAction>goBack</wpml:executeRCLostAction>
+      <wpml:takeOffSecurityHeight>20</wpml:takeOffSecurityHeight>
+      <wpml:takeOffRefPoint></wpml:takeOffRefPoint>
+      <wpml:takeOffRefPointAGLHeight></wpml:takeOffRefPointAGLHeight>
+      <wpml:globalTransitionalSpeed></wpml:globalTransitionalSpeed>
+      <wpml:globalRTHHeight></wpml:globalRTHHeight>
+      <wpml:droneInfo>
+        <!-- 用M30申报无人机型号 -->
+        <wpml:droneEnumValue>67</wpml:droneEnumValue>
+        <wpml:droneSubEnumValue>1</wpml:droneSubEnumValue>
+      </wpml:droneInfo>
+      <wpml:payloadInfo>
+        <!-- 用M30声明有效载荷模型 -->
+        <wpml:payloadEnumValue>53</wpml:payloadEnumValue>
+        <wpml:payloadSubEnumValue>0</wpml:payloadSubEnumValue>
+        <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+      </wpml:payloadInfo>
+    </wpml:missionConfig>
+    <!-- 步骤3:设置路径点模板文件夹 -->
+    <Folder>
+      <wpml:templateType>waypoint</wpml:templateType>
+      <wpml:templateId>0</wpml:templateId>
+      <wpml:waylineCoordinateSysParam>
+        <wpml:coordinateMode></wpml:coordinateMode>
+        <wpml:heightMode></wpml:heightMode>
+      </wpml:waylineCoordinateSysParam>
+      <wpml:autoFlightSpeed>10</wpml:autoFlightSpeed>
+      <wpml:globalHeight>100</wpml:globalHeight>
+      <wpml:caliFlightEnable>0</wpml:caliFlightEnable>
+      <wpml:gimbalPitchMode>manual</wpml:gimbalPitchMode>
+      <wpml:globalWaypointHeadingParam>
+        <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+        <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+        <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+        <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+        <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+      </wpml:globalWaypointHeadingParam>
+      <wpml:globalWaypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:globalWaypointTurnMode>
+      <wpml:globalUseStraightLine>1</wpml:globalUseStraightLine>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.86002109342,28.6202713913694
+            </coordinates>
+          </Point>
+          <wpml:index>0</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>1</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>1</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>1</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.86002109342,28.6142037658042
+            </coordinates>
+          </Point>
+          <wpml:index>1</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>2</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>2</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>2</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.866374254306,28.6142037658042
+            </coordinates>
+          </Point>
+          <wpml:index>2</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>3</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>3</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>3</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.866374254306,28.6202713913694
+            </coordinates>
+          </Point>
+          <wpml:index>3</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>4</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>4</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>4</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh01</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.86425430209,28.6357383285408
+            </coordinates>
+          </Point>
+          <wpml:index>4</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>5</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>5</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>5</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.86425430209,28.633120921433
+            </coordinates>
+          </Point>
+          <wpml:index>5</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>6</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>6</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>6</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.866977149064,28.633120921433
+            </coordinates>
+          </Point>
+          <wpml:index>6</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>7</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>7</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>7</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.866977149064,28.6357383285408
+            </coordinates>
+          </Point>
+          <wpml:index>7</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>8</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>8</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>8</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh02</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.838147600941,28.618654178036
+            </coordinates>
+          </Point>
+          <wpml:index>8</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>9</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>9</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>9</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.838147600941,28.6160843601496
+            </coordinates>
+          </Point>
+          <wpml:index>9</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>10</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>10</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>10</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.841288489469,28.6160843601496
+            </coordinates>
+          </Point>
+          <wpml:index>10</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>11</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>11</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>11</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              115.841288489469,28.618654178036
+            </coordinates>
+          </Point>
+          <wpml:index>11</wpml:index>
+          <wpml:ellipsoidHeight>100</wpml:ellipsoidHeight>
+          <wpml:height>100</wpml:height>
+          <wpml:waypointSpeed></wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>0</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>0.000000,0.000000,0.000000</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>followBadArc</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex></wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>1</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>1</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>1</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>1</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine></wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <wpml:actionGroup>
+            <wpml:actionGroupId>12</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>12</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>12</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>sequence</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>0</wpml:actionId>
+                <wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:fileSuffix>航点dkbh03</wpml:fileSuffix>
+                    <wpml:payloadLensIndex>wide,ir</wpml:payloadLensIndex>
+                    <wpml:useGlobalPayloadLensIndex>1</wpml:useGlobalPayloadLensIndex>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>1</wpml:actionId>
+                <wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                    <wpml:gimbalHeadingYawBase>north</wpml:gimbalHeadingYawBase>
+                    <wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
+                    <wpml:gimbalPitchRotateEnable>1</wpml:gimbalPitchRotateEnable>
+                    <wpml:gimbalPitchRotateAngle>-83</wpml:gimbalPitchRotateAngle>
+                    <wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
+                    <wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
+                    <wpml:gimbalYawRotateEnable>0</wpml:gimbalYawRotateEnable>
+                    <wpml:gimbalYawRotateAngle>0</wpml:gimbalYawRotateAngle>
+                    <wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
+                    <wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+          </wpml:actionGroup>
+        </Placemark>
+      <!-- 负载设置 -->
+      <wpml:payloadParam>
+        <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+        <wpml:focusMode></wpml:focusMode>
+        <wpml:meteringMode></wpml:meteringMode>
+        <wpml:returnMode></wpml:returnMode>
+        <wpml:samplingRate></wpml:samplingRate>
+        <wpml:scanningMode></wpml:scanningMode>
+        <wpml:imageFormat>wide,ir</wpml:imageFormat>
+      </wpml:payloadParam>
+    </Folder>
+  </Document>
+</kml>
diff --git a/src/main/resources/template/template.xml b/src/main/resources/template/template.xml
new file mode 100644
index 0000000..d812a51
--- /dev/null
+++ b/src/main/resources/template/template.xml
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.3">
+  <Document>
+    <!-- 步骤1:实现文件创建信息 -->
+    <wpml:author>${author!''}</wpml:author>
+    <wpml:createTime>${createTime!''}</wpml:createTime>
+    <wpml:updateTime>${updateTime!''}</wpml:updateTime>
+    <!-- 步骤2:设置任务配置 -->
+    <wpml:missionConfig>
+      <wpml:flyToWaylineMode>${missionConfig.flyToWaylineMode!''}</wpml:flyToWaylineMode>
+      <wpml:finishAction>${missionConfig.finishAction!''}</wpml:finishAction>
+      <wpml:exitOnRCLost>${missionConfig.exitOnRCLost!''}</wpml:exitOnRCLost>
+      <wpml:executeRCLostAction>${missionConfig.executeRCLostAction!''}</wpml:executeRCLostAction>
+      <wpml:takeOffSecurityHeight>${missionConfig.takeOffSecurityHeight!''}</wpml:takeOffSecurityHeight>
+      <wpml:takeOffRefPoint>${missionConfig.takeOffRefPoint!''}</wpml:takeOffRefPoint>
+      <wpml:takeOffRefPointAGLHeight>${missionConfig.takeOffRefPointAGLHeight!''}</wpml:takeOffRefPointAGLHeight>
+      <wpml:globalTransitionalSpeed>${missionConfig.globalTransitionalSpeed!''}</wpml:globalTransitionalSpeed>
+      <wpml:globalRTHHeight>${missionConfig.globalRTHHeight!''}</wpml:globalRTHHeight>
+      <wpml:droneInfo>
+        <!-- 用M30申报无人机型号 -->
+        <wpml:droneEnumValue>${missionConfig.droneInfo.droneEnumValue!''}</wpml:droneEnumValue>
+        <wpml:droneSubEnumValue>${missionConfig.droneInfo.droneSubEnumValue!''}</wpml:droneSubEnumValue>
+      </wpml:droneInfo>
+      <wpml:payloadInfo>
+        <!-- 用M30声明有效载荷模型 -->
+        <wpml:payloadEnumValue>${missionConfig.payloadInfo.payloadEnumValue!''}</wpml:payloadEnumValue>
+        <wpml:payloadSubEnumValue>${missionConfig.payloadInfo.payloadSubEnumValue!''}</wpml:payloadSubEnumValue>
+        <wpml:payloadPositionIndex>${missionConfig.payloadInfo.payloadPositionIndex!''}</wpml:payloadPositionIndex>
+      </wpml:payloadInfo>
+    </wpml:missionConfig>
+    <!-- 步骤3:设置路径点模板文件夹 -->
+    <Folder>
+      <wpml:templateType>${folder.templateType!''}</wpml:templateType>
+      <wpml:templateId>${folder.templateId!''}</wpml:templateId>
+      <wpml:waylineCoordinateSysParam>
+        <wpml:coordinateMode>${folder.waylineCoordinateSysParam.coordinateMode!''}</wpml:coordinateMode>
+        <wpml:heightMode>${folder.waylineCoordinateSysParam.heightMode!''}</wpml:heightMode>
+      </wpml:waylineCoordinateSysParam>
+      <wpml:autoFlightSpeed>${folder.autoFlightSpeed!''}</wpml:autoFlightSpeed>
+      <wpml:globalHeight>${folder.globalHeight!''}</wpml:globalHeight>
+      <wpml:caliFlightEnable>${folder.caliFlightEnable!''}</wpml:caliFlightEnable>
+      <wpml:gimbalPitchMode>${folder.gimbalPitchMode!''}</wpml:gimbalPitchMode>
+      <wpml:globalWaypointHeadingParam>
+        <wpml:waypointHeadingMode>${folder.globalWaypointHeadingParam.waypointHeadingMode!''}</wpml:waypointHeadingMode>
+        <wpml:waypointHeadingAngle>${folder.globalWaypointHeadingParam.waypointHeadingAngle!''}</wpml:waypointHeadingAngle>
+        <wpml:waypointPoiPoint>${folder.globalWaypointHeadingParam.waypointPoiPoint!''}</wpml:waypointPoiPoint>
+        <wpml:waypointHeadingPathMode>${folder.globalWaypointHeadingParam.waypointHeadingPathMode!''}</wpml:waypointHeadingPathMode>
+        <wpml:waypointHeadingPoiIndex>${folder.globalWaypointHeadingParam.waypointHeadingPoiIndex!''}</wpml:waypointHeadingPoiIndex>
+      </wpml:globalWaypointHeadingParam>
+      <wpml:globalWaypointTurnMode>${folder.globalWaypointTurnMode!''}</wpml:globalWaypointTurnMode>
+      <wpml:globalUseStraightLine>${folder.globalUseStraightLine!''}</wpml:globalUseStraightLine>
+      <#if folder.placemarkList??>
+      <#assign placemarkIndex = 0>
+      <#list folder.placemarkList as placemark>
+        <Placemark>
+          <Point>
+            <!-- 经度和纬度 -->
+            <coordinates>
+              ${placemark.coordinates!''}
+            </coordinates>
+          </Point>
+          <wpml:index>${placemarkIndex!''}</wpml:index>
+          <#assign placemarkIndex = placemarkIndex + 1>
+          <wpml:ellipsoidHeight>${placemark.ellipsoidHeight!''}</wpml:ellipsoidHeight>
+          <wpml:height>${placemark.height!''}</wpml:height>
+          <wpml:waypointSpeed>${placemark.waypointSpeed!''}</wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>${folder.globalWaypointHeadingParam.waypointHeadingMode!''}</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>${folder.globalWaypointHeadingParam.waypointHeadingAngle!''}</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>${folder.globalWaypointHeadingParam.waypointPoiPoint!''}</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>${folder.globalWaypointHeadingParam.waypointHeadingPathMode!''}</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>${folder.globalWaypointHeadingParam.waypointHeadingPoiIndex!''}</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>${folder.globalWaypointTurnMode!''}</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useGlobalHeight>${placemark.useGlobalHeight!''}</wpml:useGlobalHeight>
+          <wpml:useGlobalSpeed>${placemark.useGlobalSpeed!''}</wpml:useGlobalSpeed>
+          <wpml:useGlobalHeadingParam>${placemark.useGlobalHeadingParam!''}</wpml:useGlobalHeadingParam>
+          <wpml:useGlobalTurnParam>${placemark.useGlobalTurnParam!''}</wpml:useGlobalTurnParam>
+          <wpml:useStraightLine>${placemark.useStraightLine!''}</wpml:useStraightLine>
+          <!-- 宣布航路点1#的行动组 -->
+          <#if placemark.actionGroup??>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>${placemark.actionGroup.actionGroupId!''}</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>${placemark.actionGroup.actionGroupStartIndex!''}</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>${placemark.actionGroup.actionGroupEndIndex!''}</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>${placemark.actionGroup.actionGroupMode!''}</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>${placemark.actionGroup.actionTrigger.actionTriggerType!''}</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <#if placemark.actionGroup.actions??>
+            <#assign idx = 0>
+            <#list placemark.actionGroup.actions as action>
+            <!-- 动作 -->
+              <wpml:action>
+                <wpml:actionId>${idx!''}</wpml:actionId>
+                <wpml:actionActuatorFunc>${action.actionActuatorFunc!''}</wpml:actionActuatorFunc>
+                <wpml:actionActuatorFuncParam>
+                  <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+                  <#if action.actionActuatorFuncParam.fileSuffix??>
+                    <wpml:fileSuffix>${action.actionActuatorFuncParam.fileSuffix!''}</wpml:fileSuffix>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.payloadLensIndex??>
+                    <wpml:payloadLensIndex>${action.actionActuatorFuncParam.payloadLensIndex!''}</wpml:payloadLensIndex>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.useGlobalPayloadLensIndex??>
+                    <wpml:useGlobalPayloadLensIndex>${action.actionActuatorFuncParam.useGlobalPayloadLensIndex!''}</wpml:useGlobalPayloadLensIndex>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.isPointFocus??>
+                    <wpml:isPointFocus>${action.actionActuatorFuncParam.isPointFocus!''}</wpml:isPointFocus>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.focusX??>
+                    <wpml:focusX>${action.actionActuatorFuncParam.focusX!''}</wpml:focusX>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.focusY??>
+                    <wpml:focusY>${action.actionActuatorFuncParam.focusY!''}</wpml:focusY>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.focusRegionWidth??>
+                    <wpml:focusRegionWidth>${action.actionActuatorFuncParam.focusRegionWidth!''}</wpml:focusRegionWidth>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.focusRegionHeight??>
+                    <wpml:focusRegionHeight>${action.actionActuatorFuncParam.focusRegionHeight!''}</wpml:focusRegionHeight>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.isInfiniteFocus??>
+                    <wpml:isInfiniteFocus>${action.actionActuatorFuncParam.isInfiniteFocus!''}</wpml:isInfiniteFocus>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.gimbalHeadingYawBase??>
+                    <wpml:gimbalHeadingYawBase>${action.actionActuatorFuncParam.gimbalHeadingYawBase!''}</wpml:gimbalHeadingYawBase>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.gimbalRotateMode??>
+                    <wpml:gimbalRotateMode>${action.actionActuatorFuncParam.gimbalRotateMode!''}</wpml:gimbalRotateMode>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.gimbalPitchRotateEnable??>
+                    <wpml:gimbalPitchRotateEnable>${action.actionActuatorFuncParam.gimbalPitchRotateEnable!''}</wpml:gimbalPitchRotateEnable>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.gimbalPitchRotateAngle??>
+                    <wpml:gimbalPitchRotateAngle>${action.actionActuatorFuncParam.gimbalPitchRotateAngle!''}</wpml:gimbalPitchRotateAngle>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.gimbalRollRotateEnable??>
+                    <wpml:gimbalRollRotateEnable>${action.actionActuatorFuncParam.gimbalRollRotateEnable!''}</wpml:gimbalRollRotateEnable>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.gimbalRollRotateAngle??>
+                    <wpml:gimbalRollRotateAngle>${action.actionActuatorFuncParam.gimbalRollRotateAngle!''}</wpml:gimbalRollRotateAngle>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.gimbalYawRotateEnable??>
+                    <wpml:gimbalYawRotateEnable>${action.actionActuatorFuncParam.gimbalYawRotateEnable!''}</wpml:gimbalYawRotateEnable>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.gimbalYawRotateAngle??>
+                    <wpml:gimbalYawRotateAngle>${action.actionActuatorFuncParam.gimbalYawRotateAngle!''}</wpml:gimbalYawRotateAngle>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.gimbalRotateTimeEnable??>
+                    <wpml:gimbalRotateTimeEnable>${action.actionActuatorFuncParam.gimbalRotateTimeEnable!''}</wpml:gimbalRotateTimeEnable>
+                  </#if>
+                  <#if action.actionActuatorFuncParam.gimbalRotateTime??>
+                    <wpml:gimbalRotateTime>${action.actionActuatorFuncParam.gimbalRotateTime!''}</wpml:gimbalRotateTime>
+                  </#if>
+                </wpml:actionActuatorFuncParam>
+              </wpml:action>
+            <#assign idx = idx + 1>
+            </#list>
+            </#if>
+          </wpml:actionGroup>
+          </#if>
+        </Placemark>
+      </#list>
+      </#if>
+      <!-- 负载设置 -->
+      <wpml:payloadParam>
+        <wpml:payloadPositionIndex>${folder.payloadParam.payloadPositionIndex!''}</wpml:payloadPositionIndex>
+        <wpml:focusMode>${folder.payloadParam.focusMode!''}</wpml:focusMode>
+        <wpml:meteringMode>${folder.payloadParam.meteringMode!''}</wpml:meteringMode>
+        <wpml:returnMode>${folder.payloadParam.returnMode!''}</wpml:returnMode>
+        <wpml:samplingRate>${folder.payloadParam.samplingRate!''}</wpml:samplingRate>
+        <wpml:scanningMode>${folder.payloadParam.scanningMode!''}</wpml:scanningMode>
+        <wpml:imageFormat>${folder.payloadParam.imageFormat!''}</wpml:imageFormat>
+      </wpml:payloadParam>
+    </Folder>
+  </Document>
+</kml>
diff --git a/src/main/resources/template/waylines.xml b/src/main/resources/template/waylines.xml
new file mode 100644
index 0000000..8140d2f
--- /dev/null
+++ b/src/main/resources/template/waylines.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.3">
+  <Document>
+    <wpml:missionConfig>
+      <wpml:flyToWaylineMode>${missionConfig.flyToWaylineMode!''}</wpml:flyToWaylineMode>
+      <wpml:finishAction>${missionConfig.finishAction!''}</wpml:finishAction>
+      <wpml:exitOnRCLost>${missionConfig.exitOnRCLost!''}</wpml:exitOnRCLost>
+      <wpml:executeRCLostAction>${missionConfig.executeRCLostAction!''}</wpml:executeRCLostAction>
+      <wpml:takeOffSecurityHeight>${missionConfig.takeOffSecurityHeight!''}</wpml:takeOffSecurityHeight>
+      <wpml:globalTransitionalSpeed>${missionConfig.globalTransitionalSpeed!''}</wpml:globalTransitionalSpeed>
+      <wpml:globalRTHHeight>${missionConfig.globalRTHHeight!''}</wpml:globalRTHHeight>
+      <wpml:droneInfo>
+        <wpml:droneEnumValue>${missionConfig.droneInfo.droneEnumValue!''}</wpml:droneEnumValue>
+        <wpml:droneSubEnumValue>${missionConfig.droneInfo.droneSubEnumValue!''}</wpml:droneSubEnumValue>
+      </wpml:droneInfo>
+      <wpml:payloadInfo>
+        <wpml:payloadEnumValue>${missionConfig.payloadInfo.payloadEnumValue!''}</wpml:payloadEnumValue>
+        <wpml:payloadSubEnumValue>${missionConfig.payloadInfo.payloadSubEnumValue!''}</wpml:payloadSubEnumValue>
+        <wpml:payloadPositionIndex>${missionConfig.payloadInfo.payloadPositionIndex!''}</wpml:payloadPositionIndex>
+      </wpml:payloadInfo>
+    </wpml:missionConfig>
+    <Folder>
+      <wpml:templateId>${folder.templateId!''}</wpml:templateId>
+      <wpml:executeHeightMode>${folder.waylineCoordinateSysParam.heightMode!''}</wpml:executeHeightMode>
+      <wpml:waylineId>0</wpml:waylineId>
+      <wpml:autoFlightSpeed>${folder.autoFlightSpeed!''}</wpml:autoFlightSpeed>
+      <#if folder.placemarkList??>
+      <#assign placemarkIndex = 0>
+      <#list folder.placemarkList as placemark>
+        <Placemark>
+          <Point>
+            <coordinates>
+              ${placemark.coordinates!''}
+            </coordinates>
+          </Point>
+          <wpml:index>${placemarkIndex!''}</wpml:index>
+          <#assign placemarkIndex = placemarkIndex + 1>
+          <wpml:executeHeight>${placemark.height!''}</wpml:executeHeight>
+          <wpml:waypointSpeed>${placemark.waypointSpeed!''}</wpml:waypointSpeed>
+          <wpml:waypointHeadingParam>
+            <wpml:waypointHeadingMode>${folder.globalWaypointHeadingParam.waypointHeadingMode!''}</wpml:waypointHeadingMode>
+            <wpml:waypointHeadingAngle>${folder.globalWaypointHeadingParam.waypointHeadingAngle!''}</wpml:waypointHeadingAngle>
+            <wpml:waypointPoiPoint>${folder.globalWaypointHeadingParam.waypointPoiPoint!''}</wpml:waypointPoiPoint>
+            <wpml:waypointHeadingPathMode>${folder.globalWaypointHeadingParam.waypointHeadingPathMode!''}</wpml:waypointHeadingPathMode>
+            <wpml:waypointHeadingPoiIndex>${folder.globalWaypointHeadingParam.waypointHeadingPoiIndex!''}</wpml:waypointHeadingPoiIndex>
+          </wpml:waypointHeadingParam>
+          <wpml:waypointTurnParam>
+            <wpml:waypointTurnMode>${folder.globalWaypointTurnMode!''}</wpml:waypointTurnMode>
+            <wpml:waypointTurnDampingDist>0.2</wpml:waypointTurnDampingDist>
+          </wpml:waypointTurnParam>
+          <wpml:useStraightLine>${folder.globalUseStraightLine!''}</wpml:useStraightLine>
+          <wpml:actionGroup>
+            <wpml:actionGroupId>${placemark.actionGroup.actionGroupId!''}</wpml:actionGroupId>
+            <wpml:actionGroupStartIndex>${placemark.actionGroup.actionGroupStartIndex!''}</wpml:actionGroupStartIndex>
+            <wpml:actionGroupEndIndex>${placemark.actionGroup.actionGroupEndIndex!''}</wpml:actionGroupEndIndex>
+            <wpml:actionGroupMode>${placemark.actionGroup.actionGroupMode!''}</wpml:actionGroupMode>
+            <wpml:actionTrigger>
+              <wpml:actionTriggerType>${placemark.actionGroup.actionTrigger.actionTriggerType!''}</wpml:actionTriggerType>
+            </wpml:actionTrigger>
+            <#if placemark.actionGroup.actions??>
+            <#assign idx = 0>
+            <#list placemark.actionGroup.actions as action>
+            <wpml:action>
+              <wpml:actionId>${idx!''}</wpml:actionId>
+              <wpml:actionActuatorFunc>${action.actionActuatorFunc!''}</wpml:actionActuatorFunc>
+              <wpml:actionActuatorFuncParam>
+              <wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
+              <#if action.actionActuatorFuncParam.fileSuffix??>
+                <wpml:fileSuffix>${action.actionActuatorFuncParam.fileSuffix!''}</wpml:fileSuffix>
+              </#if>
+              <#if action.actionActuatorFuncParam.payloadLensIndex??>
+                <wpml:payloadLensIndex>${action.actionActuatorFuncParam.payloadLensIndex!''}</wpml:payloadLensIndex>
+              </#if>
+              <#if action.actionActuatorFuncParam.useGlobalPayloadLensIndex??>
+                <wpml:useGlobalPayloadLensIndex>${action.actionActuatorFuncParam.useGlobalPayloadLensIndex!''}</wpml:useGlobalPayloadLensIndex>
+              </#if>
+              <#if action.actionActuatorFuncParam.isPointFocus??>
+                <wpml:isPointFocus>${action.actionActuatorFuncParam.isPointFocus!''}</wpml:isPointFocus>
+              </#if>
+              <#if action.actionActuatorFuncParam.focusX??>
+                <wpml:focusX>${action.actionActuatorFuncParam.focusX!''}</wpml:focusX>
+              </#if>
+              <#if action.actionActuatorFuncParam.focusY??>
+                <wpml:focusY>${action.actionActuatorFuncParam.focusY!''}</wpml:focusY>
+              </#if>
+              <#if action.actionActuatorFuncParam.focusRegionWidth??>
+                <wpml:focusRegionWidth>${action.actionActuatorFuncParam.focusRegionWidth!''}</wpml:focusRegionWidth>
+              </#if>
+              <#if action.actionActuatorFuncParam.focusRegionHeight??>
+                <wpml:focusRegionHeight>${action.actionActuatorFuncParam.focusRegionHeight!''}</wpml:focusRegionHeight>
+              </#if>
+              <#if action.actionActuatorFuncParam.isInfiniteFocus??>
+                <wpml:isInfiniteFocus>${action.actionActuatorFuncParam.isInfiniteFocus!''}</wpml:isInfiniteFocus>
+              </#if>
+              <#if action.actionActuatorFuncParam.gimbalHeadingYawBase??>
+                <wpml:gimbalHeadingYawBase>${action.actionActuatorFuncParam.gimbalHeadingYawBase!''}</wpml:gimbalHeadingYawBase>
+              </#if>
+              <#if action.actionActuatorFuncParam.gimbalRotateMode??>
+                <wpml:gimbalRotateMode>${action.actionActuatorFuncParam.gimbalRotateMode!''}</wpml:gimbalRotateMode>
+              </#if>
+              <#if action.actionActuatorFuncParam.gimbalPitchRotateEnable??>
+                <wpml:gimbalPitchRotateEnable>${action.actionActuatorFuncParam.gimbalPitchRotateEnable!''}</wpml:gimbalPitchRotateEnable>
+              </#if>
+              <#if action.actionActuatorFuncParam.gimbalPitchRotateAngle??>
+                <wpml:gimbalPitchRotateAngle>${action.actionActuatorFuncParam.gimbalPitchRotateAngle!''}</wpml:gimbalPitchRotateAngle>
+              </#if>
+              <#if action.actionActuatorFuncParam.gimbalRollRotateEnable??>
+                <wpml:gimbalRollRotateEnable>${action.actionActuatorFuncParam.gimbalRollRotateEnable!''}</wpml:gimbalRollRotateEnable>
+              </#if>
+              <#if action.actionActuatorFuncParam.gimbalRollRotateAngle??>
+                <wpml:gimbalRollRotateAngle>${action.actionActuatorFuncParam.gimbalRollRotateAngle!''}</wpml:gimbalRollRotateAngle>
+              </#if>
+              <#if action.actionActuatorFuncParam.gimbalYawRotateEnable??>
+                <wpml:gimbalYawRotateEnable>${action.actionActuatorFuncParam.gimbalYawRotateEnable!''}</wpml:gimbalYawRotateEnable>
+              </#if>
+              <#if action.actionActuatorFuncParam.gimbalYawRotateAngle??>
+                <wpml:gimbalYawRotateAngle>${action.actionActuatorFuncParam.gimbalYawRotateAngle!''}</wpml:gimbalYawRotateAngle>
+              </#if>
+              <#if action.actionActuatorFuncParam.gimbalRotateTimeEnable??>
+                <wpml:gimbalRotateTimeEnable>${action.actionActuatorFuncParam.gimbalRotateTimeEnable!''}</wpml:gimbalRotateTimeEnable>
+              </#if>
+              <#if action.actionActuatorFuncParam.gimbalRotateTime??>
+                <wpml:gimbalRotateTime>${action.actionActuatorFuncParam.gimbalRotateTime!''}</wpml:gimbalRotateTime>
+              </#if>
+              </wpml:actionActuatorFuncParam>
+            </wpml:action>
+            <#assign idx = idx + 1>
+            </#list>
+            </#if>
+          </wpml:actionGroup>
+        </Placemark>
+      </#list>
+      </#if>
+    </Folder>
+  </Document>
+</kml>
diff --git a/src/main/resources/template2/newTemplate.xml b/src/main/resources/template2/newTemplate.xml
new file mode 100644
index 0000000..afea1e4
--- /dev/null
+++ b/src/main/resources/template2/newTemplate.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<INFO>这就是一个简单的模板</INFO>
+<Profile>
+<ID>9e55fa00152a4f5bab88c6215664d03c</ID>
+<Name>张三三</Name>
+
+<Demo>
+    <Subject>subject0</Subject>
+    <Score>60</Score>
+</Demo>
+<Demo>
+    <Subject>subject1</Subject>
+    <Score>61</Score>
+</Demo>
+<Demo>
+    <Subject>subject2</Subject>
+    <Score>62</Score>
+</Demo>
+<Demo>
+    <Subject>subject3</Subject>
+    <Score>63</Score>
+</Demo>
+<Demo>
+    <Subject>subject4</Subject>
+    <Score>64</Score>
+</Demo>
+<Demo>
+    <Subject>subject5</Subject>
+    <Score>65</Score>
+</Demo>
+<Demo>
+    <Subject>subject6</Subject>
+    <Score>66</Score>
+</Demo>
+<Demo>
+    <Subject>subject7</Subject>
+    <Score>67</Score>
+</Demo>
+<Demo>
+    <Subject>subject8</Subject>
+    <Score>68</Score>
+</Demo>
+<Demo>
+    <Subject>subject9</Subject>
+    <Score>69</Score>
+</Demo>
+
+</Profile>
diff --git a/src/main/resources/template2/template.xml b/src/main/resources/template2/template.xml
new file mode 100644
index 0000000..c5c51ea
--- /dev/null
+++ b/src/main/resources/template2/template.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<INFO>这就是一个简单的模板</INFO>
+<Profile>
+<ID>${id!''}</ID>
+<Name>${name!''}</Name>
+
+<#list demoList as list>
+<Demo>
+    <Subject>${list.subject}</Subject>
+    <Score>${list.score}</Score>
+</Demo>
+</#list>
+
+</Profile>

--
Gitblit v1.9.3