Files
zmkgC/third/plane/wayline/template/template.go

79 lines
2.1 KiB
Go
Raw Permalink Normal View History

2025-07-07 20:11:59 +08:00
package template
import (
"encoding/xml"
"fmt"
"github.com/gogf/gf/v2/os/gtime"
"github.com/tiger1103/gfast/v3/third/plane/wayline/struct"
"os"
)
func CreateWayPointTempalteWpml() {
}
func CreateWayPointTempalteKml() {
kml := _struct.KML{
//XmlnsStream: "http://www.dji.com/wpmz/1.0.3",
Document: _struct.Doc{
Author: "重庆远界大数据研究院有限公司",
CreateTime: gtime.Now().TimestampMilli(),
UpdateTime: gtime.Now().TimestampMilli(),
},
}
msconfig := _struct.MissionConfig{
FlyToWaylineMode: _struct.Safely,
FinishAction: _struct.GoHome,
ExitOnRCLost: _struct.ExecuteLostAction,
ExecuteRCLostAction: _struct.Hover,
TakeOffSecurityHeight: 5,
GlobalTransitionalSpeed: 5,
GlobalRTHHeight: 5,
}
//设置公共配置
kml.Document.MissionConfig = msconfig
tp := _struct.WayPointTemplate{}
tp.TemplateType = _struct.Waypoint //航点飞行
tp.TemplateId = 0 //模板ID * 注在一个kmz文件内该ID唯一。建议从0开始单调连续递增。在template.kml和waylines.wpml文件中将使用该id将模板与所生成的可执行航线进行关联。
tp.AutoFlightSpeed = 5 //全局航线飞行速度
tp.WaylineCoordinateSysParam.CoordinateMode = "WGS84"
tp.WaylineCoordinateSysParam.HeightMode = "EGM96"
tp.WaylineCoordinateSysParam.PositioningType = "GPS"
tp.WaylineCoordinateSysParam.SurfaceFollowModeEnable = 0
tp.GlobalHeight = 100
kml.Document.Folder = tp
createXML(kml, "template.xml")
}
func createXML(v interface{}, file string) {
// 生成 XML
xmlBytes, err := xml.MarshalIndent(v, "", " ")
if err != nil {
fmt.Println("生成XML失败:", err)
return
}
// 将 XML 写入文件
xmlFile, err := os.Create(file)
if err != nil {
fmt.Println("创建文件失败:", err)
return
}
defer xmlFile.Close()
xmlWithVersion := []byte(xml.Header + string(xmlBytes))
_, err = xmlFile.Write(xmlWithVersion)
if err != nil {
fmt.Println("写入文件失败:", err)
return
}
fmt.Println("生成的KML文件output.kml")
}
//func CreateWayPointTempalte(points []globe.Point) {
//
//}