From 3e13dd0242140c7189b65e4171efaa9190d1763d Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Mon, 18 Mar 2024 18:03:07 +0800
Subject: [PATCH] kmz文件打包完成、新增航线功能、事件编辑

---
 src/utils/cesium/kmz.ts |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/utils/cesium/kmz.ts b/src/utils/cesium/kmz.ts
index cf481bc..6d90117 100644
--- a/src/utils/cesium/kmz.ts
+++ b/src/utils/cesium/kmz.ts
@@ -141,7 +141,13 @@
   const parser = new DOMParser()
   const xmlDoc = parser.parseFromString(xmlStr, 'text/xml')
   const xmlObj = deepParse(xmlDoc.documentElement)
-  return xmlObj
+  if (Reflect.has(xmlObj, 'Document')) {
+    return xmlObj
+  } else {
+    return {
+      Document: xmlObj
+    }
+  }
 }
 
 // json转xml
@@ -151,14 +157,14 @@
  * @param {string} rootName xml根节点名称
  * @return {*} string
  */
-export const JSONToXML = (obj: any, rootName?: string | undefined) => {
+export const JSONToXML = (obj: any, rootName?: string | undefined, isEnd: boolean = false) => {
   let xml = ''
 
   const buildXml = (obj: string | any[], rootName?: string | undefined) => {
     let xml = ''
     if (Array.isArray(obj)) {
       obj.forEach((item) => {
-        xml += `<${rootName}>${buildXml(item)}</${rootName}>`
+        xml += `<${rootName}>${buildXml(item)}</${rootName}>\n`
       })
     } else if (typeof obj === 'object') {
       Object.keys(obj).forEach((key) => {
@@ -168,8 +174,8 @@
           if (key === 'Placemark') {
             xml += `${buildXml(obj[key], key)}`
           } else {
-            const str = !noWmpl.includes(key) ? 'wpml:' : ''
-            xml += `<${str}${key}>${buildXml(obj[key], key)}</${str}${key}>`
+            const str = !noWmpl.includes(key) && isEnd ? 'wpml:' : ''
+            xml += `<${str}${key}>${buildXml(obj[key], key)}</${str}${key}>\n`
           }
         }
       })
@@ -179,12 +185,12 @@
     return xml
   }
 
+  const header = isEnd ? '<?xml version="1.0" encoding="UTF-8"?>' : ''
   xml += `
-  <?xml version="1.0" encoding="UTF-8"?>
+  ${header}
   <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:wpml="http://www.dji.com/wpmz/1.0.5">
     ${buildXml(obj, rootName)}
   </kml>
   `
-
   return xml
 }

--
Gitblit v1.9.3