Files
zmkgC/third/plane/wayline/template/template.go
2025-07-07 20:11:59 +08:00

79 lines
2.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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) {
//
//}