From c8ea10048a6ebd7f9e85e85f0550fbdafe419dcc Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 07 九月 2023 13:24:43 +0800
Subject: [PATCH] 添加配置文件~

---
 MoonExp/Sources/MoonExp.py   |  133 ++++++
 MoonExp/Sources/Log.config   |   37 +
 MoonExp/Sources/logo.png     |    0 
 MoonExp/cs/ExportUtil.cs     |    2 
 MoonExp/Sources/Template.qpt |  508 +++++++++++++++++++++++++
 MoonExp/Sources/Test.qgz     |    0 
 MoonExp/Sources/Test.qpt     |  510 +++++++++++++++++++++++++
 7 files changed, 1,189 insertions(+), 1 deletions(-)

diff --git a/MoonExp/Sources/Log.config b/MoonExp/Sources/Log.config
new file mode 100644
index 0000000..66d3fcd
--- /dev/null
+++ b/MoonExp/Sources/Log.config
@@ -0,0 +1,37 @@
+锘�<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+  <!--鏃ュ織閰嶇疆閮ㄥ垎-->
+  <configSections>
+    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
+  </configSections>
+  <!--绔欑偣鏃ュ織閰嶇疆閮ㄥ垎-->
+  <log4net>
+    <root>
+      <!-- 鏃ュ織绛夌骇锛欰LL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
+      <priority value="Info"/>
+      <appender-ref ref="RollingFileAppender"/>
+    </root>
+    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date%newline%message"/>
+      </layout>
+    </appender>
+    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date%newline%message"/>
+      </layout>
+    </appender>
+    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
+      <file value="Sources\\log.txt"/>
+      <appendToFile value="true"/>
+      <maxSizeRollBackups value="10"/>
+      <maximumFileSize value="2048KB"/>
+      <rollingStyle value="Size"/>
+      <staticLogFileName value="true"/>
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date%newline%message"/>
+      </layout>
+    </appender>
+  </log4net>
+</configuration>
\ No newline at end of file
diff --git a/MoonExp/Sources/MoonExp.py b/MoonExp/Sources/MoonExp.py
new file mode 100644
index 0000000..69cb7c9
--- /dev/null
+++ b/MoonExp/Sources/MoonExp.py
@@ -0,0 +1,133 @@
+#!/usr/bin/env
+# -*- coding: utf-8 -*-
+import os
+import sys
+import math
+import argparse
+from qgis.core import *
+from qgis.gui import *
+from qgis.PyQt.QtGui import *
+from qgis.PyQt.QtCore import *
+from qgis.PyQt.QtWidgets import *
+from qgis.PyQt.QtXml import *
+
+
+# 鑾峰彇瀹屾暣璺緞
+def get_full_path():
+    return os.path.split(sys.argv[0])[0]
+
+
+# 鑾峰彇鍙傛暟
+def get_args():
+    print("argv = ", sys.argv[1:])
+    parser = argparse.ArgumentParser(description='ArgUtils')
+    parser.add_argument("-src", type=str, default=get_full_path(), required=False)
+    parser.add_argument("-qgz", type=str, default="Test.qgz", required=False)
+    parser.add_argument("-qpt", type=str, default="Test.qpt", required=False)
+
+    return parser.parse_args()
+
+
+# 璁剧疆鍥惧眰鍙敤鎬�
+def set_layers_valid(prj, show_layers):
+    for layer in prj.mapLayers().values():
+        flag = layer.name() in show_layers
+        print(layer.name() + ": " + str(flag))
+        # if not flag:
+        # project.removeMapLayer(layer)
+        layer.setValid(flag)
+
+
+# 璁剧疆鍥惧眰鍙鎬�
+def set_item_visibility(root_node, show_layers):
+    print(root_node.name() + ': Group')
+    for node in root_node.children():
+        # QgsLayerTreeLayer
+        if isinstance(node, QgsLayerTreeGroup):
+            set_item_visibility(node, show_layers)
+        # QgsRasterLayer, QgsVectorLayer
+        else:
+            name = node.layer().name()
+            flag = name in showLayers
+            print(name + ": " + str(flag))
+            # if not flag:
+            # root_node.removeLayer(node.layer())
+            # node.layer().setValid(False)
+            node.setItemVisibilityChecked(flag)
+
+
+# 鍒濆鍖�
+# QgsApplication.setPrefixPath(r"E:/terrait/TianJin/LFServer/QGIS/", True)
+qgs = QgsApplication([], False)
+qgs.initQgis()
+
+# 鍔犺浇宸ョ▼
+args = get_args()
+project = QgsProject.instance()
+# project.read(r'Test.qgz')
+project.read(os.path.join(args.src, args.qgz))
+print("FileName: " + project.fileName())
+
+# layout = QgsPrintLayout(project)
+layout = QgsLayout(project)
+# layout.initializeDefaults()
+
+# 鍔犺浇妯℃澘
+# with open(r'Test.qpt', 'r', encoding='utf-8') as f:
+with open(os.path.join(args.src, args.qpt), 'r', encoding='utf-8') as f:
+    template_content = f.read()
+doc = QDomDocument()
+doc.setContent(template_content)
+layout.loadFromTemplate(doc, QgsReadWriteContext(), True)
+
+# map = layout.itemById(r'鍦板浘')
+map = layout.referenceMap()
+map.zoomToExtent(map.extent())
+scale = '1:' + str(math.ceil(map.scale() / 100) * 100)
+print(scale)
+
+# template_content = template_content.replace('1锛�25涓�', scale)
+# doc.setContent(template_content)
+# layout.loadFromTemplate(doc, QgsReadWriteContext(), True)
+# map = layout.referenceMap()
+# map.zoomToExtent(map.extent())
+
+size = map.sizeWithUnits()
+print('size: ' + str(size.width()) + " * " + str(size.height()) + " mm")
+if size.width() > 280 or size.height() > 174:
+    map.attemptResize(QgsLayoutSize(280, 174, QgsUnitTypes.LayoutMillimeters))
+    print('size: ' + str(map.sizeWithUnits().width()) + " * " + str(map.sizeWithUnits().height()) + " mm")
+
+# 璁剧疆鍥惧眰
+# "闃�瀹�", "绔欏満", "绠¢亾涓績绾�", "鐭㈤噺娉ㄨ", "鐭㈤噺鍥�", "楂樺痉褰卞儚娉ㄨ", "楂樺痉褰卞儚", "褰卞儚娉ㄨ", "褰卞儚鍥�"
+# showLayers = ["闃�瀹�", "绠¢亾涓績绾�", "鐭㈤噺娉ㄨ", "鐭㈤噺鍥�"]
+showLayers = layout.customProperty("layers").split(',')
+root = project.layerTreeRoot()
+# set_layers_valid(project, showLayers)
+set_item_visibility(root, showLayers)
+
+# sm = layout.itemById(r'璇存槑')
+table = layout.multiFrames()[0]
+contents = table.tableContents()
+contents[1][1] = scale
+table.refreshAttributes()
+table.refresh()
+
+# collection = layout.pageCollection()
+# page = collection.page(0)
+# page.refreshItemSize()
+
+# 鍒锋柊
+map.refresh()
+# layout.updateBounds()
+layout.renderContext()
+layout.refresh()
+
+# 瀵煎嚭
+exporter = QgsLayoutExporter(layout)
+# img_path = os.path.join(r"E:/terrait/TianJin/LFServer/QGIS", "render.png")
+img_path = layout.customProperty("imgPath")
+exporter.exportToImage(img_path, QgsLayoutExporter.ImageExportSettings())
+
+# 閫�鍑�
+qgs.exitQgis()
diff --git a/MoonExp/Sources/Template.qpt b/MoonExp/Sources/Template.qpt
new file mode 100644
index 0000000..e6ca7c4
--- /dev/null
+++ b/MoonExp/Sources/Template.qpt
@@ -0,0 +1,508 @@
+<Layout units="mm" worldFileMap="{4e649c5d-cabe-431f-a385-d69809d87ebf}" name="Test" printResolution="{dpi}">
+ <Snapper snapToItems="1" tolerance="5" snapToGrid="0" snapToGuides="1"/>
+ <Grid resolution="10" offsetY="0" resUnits="mm" offsetX="0" offsetUnits="mm"/>
+ <PageCollection>
+  <symbol name="" force_rhr="0" type="fill" clip_to_extent="1" alpha="1">
+   <layer locked="0" class="SimpleFill" pass="0" enabled="1">
+    <prop v="3x:0,0,0,0,0,0" k="border_width_map_unit_scale"/>
+    <prop v="255,255,255,255" k="color"/>
+    <prop v="miter" k="joinstyle"/>
+    <prop v="0,0" k="offset"/>
+    <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+    <prop v="MM" k="offset_unit"/>
+    <prop v="35,35,35,255" k="outline_color"/>
+    <prop v="no" k="outline_style"/>
+    <prop v="0.26" k="outline_width"/>
+    <prop v="MM" k="outline_width_unit"/>
+    <prop v="solid" k="style"/>
+    <data_defined_properties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </data_defined_properties>
+   </layer>
+  </symbol>
+  <LayoutItem type="65638" excludeFromExports="0" groupUuid="" visibility="1" id="" position="0,0,mm" positionOnPage="0,0,mm" frameJoinStyle="miter" background="true" zValue="0" opacity="1" uuid="{72530018-3d33-4843-b661-79580c9b15e3}" frame="false" referencePoint="0" templateUuid="{72530018-3d33-4843-b661-79580c9b15e3}" blendMode="0" size="297,210,mm" positionLock="false" outlineWidthM="0.3,mm" itemRotation="0">
+   <FrameColor red="0" alpha="255" green="0" blue="0"/>
+   <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+   <LayoutObject>
+    <dataDefinedProperties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </dataDefinedProperties>
+    <customproperties/>
+   </LayoutObject>
+   <symbol name="" force_rhr="0" type="fill" clip_to_extent="1" alpha="1">
+    <layer locked="0" class="SimpleFill" pass="0" enabled="1">
+     <prop v="3x:0,0,0,0,0,0" k="border_width_map_unit_scale"/>
+     <prop v="255,255,255,255" k="color"/>
+     <prop v="miter" k="joinstyle"/>
+     <prop v="0,0" k="offset"/>
+     <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+     <prop v="MM" k="offset_unit"/>
+     <prop v="35,35,35,255" k="outline_color"/>
+     <prop v="no" k="outline_style"/>
+     <prop v="0.26" k="outline_width"/>
+     <prop v="MM" k="outline_width_unit"/>
+     <prop v="solid" k="style"/>
+     <data_defined_properties>
+      <Option type="Map">
+       <Option name="name" type="QString" value=""/>
+       <Option name="properties"/>
+       <Option name="type" type="QString" value="collection"/>
+      </Option>
+     </data_defined_properties>
+    </layer>
+   </symbol>
+  </LayoutItem>
+  <GuideCollection visible="1"/>
+ </PageCollection>
+ <LayoutItem pictureWidth="8.85237" type="65640" excludeFromExports="0" svgFillColor="255,255,255,255" groupUuid="" visibility="1" northOffset="0" anchorPoint="0" id="鎸囧寳閽�" position="278.938,4.42978,mm" svgBorderWidth="0.2" pictureHeight="11.1743" positionOnPage="278.938,4.42978,mm" resizeMode="0" frameJoinStyle="miter" background="false" zValue="8" northMode="0" opacity="1" pictureRotation="0" uuid="{6a1655ac-d65f-4163-9e89-5f98536a0c31}" frame="false" referencePoint="0" templateUuid="{6a1655ac-d65f-4163-9e89-5f98536a0c31}" blendMode="0" mapUuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" mode="0" size="10.4237,11.1743,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" svgBorderColor="0,0,0,255" file=":/images/north_arrows/layout_default_north_arrow.svg">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+ </LayoutItem>
+ <LayoutItem halign="4" type="65641" excludeFromExports="0" labelText="涓浗 x x x x x 宸ョ▼鏈夐檺鍏徃" htmlState="0" groupUuid="" visibility="1" id="鍏徃" position="212.337,195.29,mm" marginY="0" positionOnPage="212.337,195.29,mm" frameJoinStyle="miter" background="false" zValue="8" opacity="1" uuid="{13528ba9-5ea4-45e3-b56e-a975eb046d54}" frame="false" referencePoint="0" templateUuid="{13528ba9-5ea4-45e3-b56e-a975eb046d54}" valign="128" blendMode="0" size="76.0244,9.39831,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" marginX="0">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+  <LabelFont description="瀹嬩綋,14,-1,5,50,0,0,0,0,0,甯歌" style="甯歌"/>
+  <FontColor red="0" alpha="255" green="0" blue="0"/>
+ </LayoutItem>
+ <LayoutItem pictureWidth="43.6229" type="65640" excludeFromExports="0" svgFillColor="255,255,255,255" groupUuid="" visibility="1" northOffset="0" anchorPoint="0" id="鍥句緥" position="11.7,117,mm" svgBorderWidth="0.2" pictureHeight="72.286" positionOnPage="11.7,117,mm" resizeMode="1" frameJoinStyle="miter" background="false" zValue="8" northMode="0" opacity="1" pictureRotation="0" uuid="{a53c1ba6-77af-48ea-bd86-8e12ae041979}" frame="false" referencePoint="0" templateUuid="{a53c1ba6-77af-48ea-bd86-8e12ae041979}" blendMode="0" mapUuid="" mode="1" size="43.6229,72.286,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" svgBorderColor="0,0,0,255" file="{sourcesPath}\Lengend.png">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+ </LayoutItem>
+ <LayoutItem pictureWidth="10.7409" type="65640" excludeFromExports="0" svgFillColor="255,255,255,255" groupUuid="" visibility="1" northOffset="0" anchorPoint="0" id="Logo" position="200.5,194.948,mm" svgBorderWidth="0.2" pictureHeight="10.7409" positionOnPage="200.5,194.948,mm" resizeMode="0" frameJoinStyle="miter" background="false" zValue="7" northMode="0" opacity="1" pictureRotation="0" uuid="{29298722-a58a-42f7-85d1-04564ad9366d}" frame="false" referencePoint="0" templateUuid="{29298722-a58a-42f7-85d1-04564ad9366d}" blendMode="0" mapUuid="" mode="1" size="11.6809,10.7409,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" svgBorderColor="0,0,0,255" file="{sourcesPath}\logo.png">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+ </LayoutItem>
+ <LayoutItem type="65647" excludeFromExports="0" groupUuid="" visibility="1" multiFrame="{3f590e9a-19b4-46d3-90bb-6a188b24aaa6}" hideBackgroundIfEmpty="0" id="璇存槑" sectionX="0" position="247,174,mm" positionOnPage="247,174,mm" frameJoinStyle="miter" background="false" zValue="6" opacity="1" uuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" frame="false" referencePoint="0" templateUuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" sectionWidth="39.6466" blendMode="0" multiFrameTemplateUuid="{3f590e9a-19b4-46d3-90bb-6a188b24aaa6}" sectionY="0" size="39.6466,15.6032,mm" hidePageIfEmpty="0" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" sectionHeight="15.6032">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+ </LayoutItem>
+ <LayoutItem halign="4" type="65641" excludeFromExports="0" labelText="{title}" htmlState="0" groupUuid="" visibility="1" id="鏍囬" position="84.816,4.42978,mm" marginY="0" positionOnPage="84.816,4.42978,mm" frameJoinStyle="miter" background="false" zValue="4" opacity="1" uuid="{81ccb104-2767-491d-8296-cd4ccbebed3e}" frame="false" referencePoint="0" templateUuid="{81ccb104-2767-491d-8296-cd4ccbebed3e}" valign="128" blendMode="0" size="129.364,11.1743,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" marginX="0">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+  <LabelFont description="寰蒋闆呴粦,24,-1,5,75,0,0,0,0,0,Bold" style="Bold"/>
+  <FontColor red="0" alpha="255" green="0" blue="0"/>
+ </LayoutItem>
+ <LayoutItem type="65639" excludeFromExports="0" followPresetName="" groupUuid="" visibility="1" id="鍦板浘" position="9,18,mm" positionOnPage="9,18,mm" frameJoinStyle="round" drawCanvasItems="true" background="true" zValue="2" isTemporal="0" opacity="1" uuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" frame="true" referencePoint="0" templateUuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" blendMode="0" mapFlags="0" mapRotation="{rotation}" size="280,174,mm" followPreset="false" positionLock="true" keepLayerSet="false" outlineWidthM="4,px" itemRotation="0" labelMargin="0,mm">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+  <Extent xmax="{xmax}" ymax="{ymax}" ymin="{ymin}" xmin="{xmin}"/>
+  <crs>
+   <spatialrefsys>
+    <wkt>GEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["unknown"],AREA["World"],BBOX[-90,-180,90,180]],ID["EPSG",4326]]</wkt>
+    <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
+    <srsid>3452</srsid>
+    <srid>4326</srid>
+    <authid>EPSG:4326</authid>
+    <description>WGS 84</description>
+    <projectionacronym>longlat</projectionacronym>
+    <ellipsoidacronym>EPSG:7030</ellipsoidacronym>
+    <geographicflag>true</geographicflag>
+   </spatialrefsys>
+  </crs>
+  <LayerSet/>
+  <ComposerMapGrid intervalY="15" bottomFrameDivisions="0" rotatedTicksMinimumAngle="0" showAnnotation="1" rotatedTicksMarginToCorner="0" annotationPrecision="3" uuid="{33b582a6-ae09-42c2-b50b-ae68c9d6d71a}" rightAnnotationPosition="1" gridFramePenThickness="0.5" topAnnotationPosition="1" topFrameDivisions="0" rotatedTicksLengthMode="0" show="0" maximumIntervalWidth="10" gridFrameMargin="0" topAnnotationDisplay="0" annotationExpression="" unit="1" offsetY="5" rotatedAnnotationsLengthMode="0" topAnnotationDirection="0" minimumIntervalWidth="12" frameFillColor2="0,0,0,255" annotationFormat="0" rotatedAnnotationsMinimumAngle="0" intervalX="15" gridStyle="3" bottomAnnotationDirection="0" name="缃戞牸" crossLength="3" leftFrameDivisions="0" blendMode="0" rightFrameDivisions="0" position="3" rotatedAnnotationsMarginToCorner="0" gridFrameWidth="1" rightAnnotationDirection="2" frameFillColor1="255,255,255,255" leftAnnotationDisplay="0" gridFramePenColor="0,0,0,255" leftAnnotationPosition="1" offsetX="0" bottomAnnotationDisplay="0" leftAnnotationDirection="2" rotatedAnnotationsEnabled="1" gridFrameSideFlags="15" bottomAnnotationPosition="1" rotatedTicksEnabled="1" gridFrameStyle="3" frameAnnotationDistance="0.5" rightAnnotationDisplay="0">
+   <lineStyle>
+    <symbol name="" force_rhr="0" type="line" clip_to_extent="1" alpha="0.616">
+     <layer locked="0" class="SimpleLine" pass="0" enabled="1">
+      <prop v="0" k="align_dash_pattern"/>
+      <prop v="round" k="capstyle"/>
+      <prop v="0.66;2" k="customdash"/>
+      <prop v="3x:0,0,0,0,0,0" k="customdash_map_unit_scale"/>
+      <prop v="MM" k="customdash_unit"/>
+      <prop v="0" k="dash_pattern_offset"/>
+      <prop v="3x:0,0,0,0,0,0" k="dash_pattern_offset_map_unit_scale"/>
+      <prop v="MM" k="dash_pattern_offset_unit"/>
+      <prop v="0" k="draw_inside_polygon"/>
+      <prop v="round" k="joinstyle"/>
+      <prop v="0,0,0,255" k="line_color"/>
+      <prop v="solid" k="line_style"/>
+      <prop v="0.5" k="line_width"/>
+      <prop v="MM" k="line_width_unit"/>
+      <prop v="0" k="offset"/>
+      <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+      <prop v="MM" k="offset_unit"/>
+      <prop v="0" k="ring_filter"/>
+      <prop v="0" k="tweak_dash_pattern_on_corners"/>
+      <prop v="1" k="use_custom_dash"/>
+      <prop v="3x:0,0,0,0,0,0" k="width_map_unit_scale"/>
+      <data_defined_properties>
+       <Option type="Map">
+        <Option name="name" type="QString" value=""/>
+        <Option name="properties"/>
+        <Option name="type" type="QString" value="collection"/>
+       </Option>
+      </data_defined_properties>
+     </layer>
+    </symbol>
+   </lineStyle>
+   <markerStyle>
+    <symbol name="" force_rhr="0" type="marker" clip_to_extent="1" alpha="1">
+     <layer locked="0" class="SimpleMarker" pass="0" enabled="1">
+      <prop v="0" k="angle"/>
+      <prop v="0,0,0,255" k="color"/>
+      <prop v="1" k="horizontal_anchor_point"/>
+      <prop v="bevel" k="joinstyle"/>
+      <prop v="circle" k="name"/>
+      <prop v="0,0" k="offset"/>
+      <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+      <prop v="MM" k="offset_unit"/>
+      <prop v="35,35,35,255" k="outline_color"/>
+      <prop v="solid" k="outline_style"/>
+      <prop v="0" k="outline_width"/>
+      <prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
+      <prop v="MM" k="outline_width_unit"/>
+      <prop v="diameter" k="scale_method"/>
+      <prop v="2" k="size"/>
+      <prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
+      <prop v="MM" k="size_unit"/>
+      <prop v="1" k="vertical_anchor_point"/>
+      <data_defined_properties>
+       <Option type="Map">
+        <Option name="name" type="QString" value=""/>
+        <Option name="properties"/>
+        <Option name="type" type="QString" value="collection"/>
+       </Option>
+      </data_defined_properties>
+     </layer>
+    </symbol>
+   </markerStyle>
+   <spatialrefsys>
+    <wkt>GEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["unknown"],AREA["World"],BBOX[-90,-180,90,180]],ID["EPSG",4326]]</wkt>
+    <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
+    <srsid>3452</srsid>
+    <srid>4326</srid>
+    <authid>EPSG:4326</authid>
+    <description>WGS 84</description>
+    <projectionacronym>longlat</projectionacronym>
+    <ellipsoidacronym>EPSG:7030</ellipsoidacronym>
+    <geographicflag>true</geographicflag>
+   </spatialrefsys>
+   <text-style fontWordSpacing="0" fontLetterSpacing="0" fontWeight="50" fontStrikeout="0" previewBkgrdColor="255,255,255,255" fontUnderline="0" multilineHeight="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0" namedStyle="" fontSizeUnit="Point" fontSize="8" fontKerning="1" textOrientation="horizontal" capitalization="0" textOpacity="1" fontItalic="0" blendMode="0" allowHtml="0" textColor="0,0,0,255" fontFamily="SimSun">
+    <text-buffer bufferSizeUnits="MM" bufferColor="255,255,255,255" bufferDraw="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferSize="1" bufferNoFill="1" bufferBlendMode="0" bufferJoinStyle="128" bufferOpacity="1"/>
+    <text-mask maskOpacity="1" maskSizeUnits="MM" maskJoinStyle="128" maskSize="1.5" maskType="0" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskEnabled="0" maskedSymbolLayers=""/>
+    <background shapeRotation="0" shapeOpacity="1" shapeBorderColor="128,128,128,255" shapeSizeUnit="MM" shapeType="0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeFillColor="255,255,255,255" shapeSizeX="0" shapeRadiiUnit="MM" shapeOffsetY="0" shapeRadiiX="0" shapeOffsetUnit="MM" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeRotationType="0" shapeSizeY="0" shapeOffsetX="0" shapeBorderWidthUnit="MM" shapeJoinStyle="64" shapeSizeType="0" shapeDraw="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeBlendMode="0" shapeSVGFile="" shapeBorderWidth="0">
+     <symbol name="markerSymbol" force_rhr="0" type="marker" clip_to_extent="1" alpha="1">
+      <layer locked="0" class="SimpleMarker" pass="0" enabled="1">
+       <prop v="0" k="angle"/>
+       <prop v="231,113,72,255" k="color"/>
+       <prop v="1" k="horizontal_anchor_point"/>
+       <prop v="bevel" k="joinstyle"/>
+       <prop v="circle" k="name"/>
+       <prop v="0,0" k="offset"/>
+       <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+       <prop v="MM" k="offset_unit"/>
+       <prop v="35,35,35,255" k="outline_color"/>
+       <prop v="solid" k="outline_style"/>
+       <prop v="0" k="outline_width"/>
+       <prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
+       <prop v="MM" k="outline_width_unit"/>
+       <prop v="diameter" k="scale_method"/>
+       <prop v="2" k="size"/>
+       <prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
+       <prop v="MM" k="size_unit"/>
+       <prop v="1" k="vertical_anchor_point"/>
+       <data_defined_properties>
+        <Option type="Map">
+         <Option name="name" type="QString" value=""/>
+         <Option name="properties"/>
+         <Option name="type" type="QString" value="collection"/>
+        </Option>
+       </data_defined_properties>
+      </layer>
+     </symbol>
+    </background>
+    <shadow shadowOffsetDist="1" shadowRadiusAlphaOnly="0" shadowBlendMode="6" shadowOffsetGlobal="1" shadowOffsetAngle="135" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowDraw="0" shadowRadiusUnit="MM" shadowOffsetUnit="MM" shadowScale="100" shadowOpacity="0.7" shadowColor="0,0,0,255" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowUnder="0" shadowRadius="1.5"/>
+    <dd_properties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </dd_properties>
+   </text-style>
+   <LayoutObject>
+    <dataDefinedProperties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </dataDefinedProperties>
+    <customproperties/>
+   </LayoutObject>
+  </ComposerMapGrid>
+  <AtlasMap scalingMode="2" margin="0.10000000000000001" atlasDriven="0"/>
+  <labelBlockingItems/>
+  <atlasClippingSettings forceLabelsInside="0" restrictLayers="0" enabled="0" clippingType="1">
+   <layersToClip/>
+  </atlasClippingSettings>
+  <itemClippingSettings clipSource="" forceLabelsInside="0" enabled="0" clippingType="1"/>
+ </LayoutItem>
+ <LayoutItem type="65643" excludeFromExports="0" groupUuid="" visibility="1" shapeType="1" id="杈规" position="2.6816,2,mm" cornerRadiusMeasure="0,mm" positionOnPage="2.6816,2,mm" frameJoinStyle="miter" background="false" zValue="1" opacity="1" uuid="{76e708b9-4aa8-4365-b8ba-3157f836dfa9}" frame="false" referencePoint="0" templateUuid="{76e708b9-4aa8-4365-b8ba-3157f836dfa9}" blendMode="0" size="292.354,205.447,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+  <symbol name="" force_rhr="0" type="fill" clip_to_extent="1" alpha="1">
+   <layer locked="0" class="SimpleLine" pass="0" enabled="1">
+    <prop v="0" k="align_dash_pattern"/>
+    <prop v="square" k="capstyle"/>
+    <prop v="5;2" k="customdash"/>
+    <prop v="3x:0,0,0,0,0,0" k="customdash_map_unit_scale"/>
+    <prop v="Pixel" k="customdash_unit"/>
+    <prop v="0" k="dash_pattern_offset"/>
+    <prop v="3x:0,0,0,0,0,0" k="dash_pattern_offset_map_unit_scale"/>
+    <prop v="MM" k="dash_pattern_offset_unit"/>
+    <prop v="0" k="draw_inside_polygon"/>
+    <prop v="bevel" k="joinstyle"/>
+    <prop v="53,121,177,255" k="line_color"/>
+    <prop v="solid" k="line_style"/>
+    <prop v="0.96" k="line_width"/>
+    <prop v="Pixel" k="line_width_unit"/>
+    <prop v="0" k="offset"/>
+    <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+    <prop v="Pixel" k="offset_unit"/>
+    <prop v="0" k="ring_filter"/>
+    <prop v="0" k="tweak_dash_pattern_on_corners"/>
+    <prop v="0" k="use_custom_dash"/>
+    <prop v="3x:0,0,0,0,0,0" k="width_map_unit_scale"/>
+    <data_defined_properties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </data_defined_properties>
+   </layer>
+  </symbol>
+ </LayoutItem>
+ <LayoutMultiFrame type="65652" showEmptyRows="0" backgroundColor="255,255,255,255" headerMode="2" showGrid="0" headerHAlignment="0" resizeMode="0" emptyTableMode="0" gridColor="0,0,0,255" includeHeader="0" uuid="{3b12245e-8390-439c-bcc3-c9bbf6061b53}" wrapBehavior="0" templateUuid="{3b12245e-8390-439c-bcc3-c9bbf6061b53}" horizontalGrid="1" emptyTableMessage="" gridStrokeWidth="0.5" verticalGrid="1" cellMargin="1">
+  <childFrame uuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" templateUuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+  <headerTextFormat>
+   <text-style fontWordSpacing="0" fontLetterSpacing="0" fontWeight="50" fontStrikeout="0" previewBkgrdColor="255,255,255,255" fontUnderline="0" multilineHeight="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0" namedStyle="" fontSizeUnit="Point" fontSize="10" fontKerning="1" textOrientation="horizontal" capitalization="0" textOpacity="1" fontItalic="0" blendMode="0" allowHtml="0" textColor="0,0,0,255" fontFamily="SimSun">
+    <text-buffer bufferSizeUnits="MM" bufferColor="255,255,255,255" bufferDraw="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferSize="1" bufferNoFill="1" bufferBlendMode="0" bufferJoinStyle="128" bufferOpacity="1"/>
+    <text-mask maskOpacity="1" maskSizeUnits="MM" maskJoinStyle="128" maskSize="1.5" maskType="0" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskEnabled="0" maskedSymbolLayers=""/>
+    <background shapeRotation="0" shapeOpacity="1" shapeBorderColor="128,128,128,255" shapeSizeUnit="MM" shapeType="0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeFillColor="255,255,255,255" shapeSizeX="0" shapeRadiiUnit="MM" shapeOffsetY="0" shapeRadiiX="0" shapeOffsetUnit="MM" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeRotationType="0" shapeSizeY="0" shapeOffsetX="0" shapeBorderWidthUnit="MM" shapeJoinStyle="64" shapeSizeType="0" shapeDraw="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeBlendMode="0" shapeSVGFile="" shapeBorderWidth="0"/>
+    <shadow shadowOffsetDist="1" shadowRadiusAlphaOnly="0" shadowBlendMode="6" shadowOffsetGlobal="1" shadowOffsetAngle="135" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowDraw="0" shadowRadiusUnit="MM" shadowOffsetUnit="MM" shadowScale="100" shadowOpacity="0.7" shadowColor="0,0,0,255" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowUnder="0" shadowRadius="1.5"/>
+    <dd_properties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </dd_properties>
+   </text-style>
+  </headerTextFormat>
+  <contentTextFormat>
+   <text-style fontWordSpacing="0" fontLetterSpacing="0" fontWeight="50" fontStrikeout="0" previewBkgrdColor="255,255,255,255" fontUnderline="0" multilineHeight="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0" namedStyle="" fontSizeUnit="Point" fontSize="10" fontKerning="1" textOrientation="horizontal" capitalization="0" textOpacity="1" fontItalic="0" blendMode="0" allowHtml="0" textColor="0,0,0,255" fontFamily="SimSun">
+    <text-buffer bufferSizeUnits="MM" bufferColor="255,255,255,255" bufferDraw="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferSize="1" bufferNoFill="1" bufferBlendMode="0" bufferJoinStyle="128" bufferOpacity="1"/>
+    <text-mask maskOpacity="1" maskSizeUnits="MM" maskJoinStyle="128" maskSize="1.5" maskType="0" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskEnabled="0" maskedSymbolLayers=""/>
+    <background shapeRotation="0" shapeOpacity="1" shapeBorderColor="128,128,128,255" shapeSizeUnit="MM" shapeType="0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeFillColor="255,255,255,255" shapeSizeX="0" shapeRadiiUnit="MM" shapeOffsetY="0" shapeRadiiX="0" shapeOffsetUnit="MM" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeRotationType="0" shapeSizeY="0" shapeOffsetX="0" shapeBorderWidthUnit="MM" shapeJoinStyle="64" shapeSizeType="0" shapeDraw="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeBlendMode="0" shapeSVGFile="" shapeBorderWidth="0"/>
+    <shadow shadowOffsetDist="1" shadowRadiusAlphaOnly="0" shadowBlendMode="6" shadowOffsetGlobal="1" shadowOffsetAngle="135" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowDraw="0" shadowRadiusUnit="MM" shadowOffsetUnit="MM" shadowScale="100" shadowOpacity="0.7" shadowColor="0,0,0,255" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowUnder="0" shadowRadius="1.5"/>
+    <dd_properties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </dd_properties>
+   </text-style>
+  </contentTextFormat>
+  <displayColumns>
+   <column width="0" sortOrder="0" sortByRank="0" attribute="" vAlignment="128" heading="" hAlignment="1">
+    <backgroundColor red="0" alpha="0" green="0" blue="0"/>
+   </column>
+   <column width="0" sortOrder="0" sortByRank="0" attribute="" vAlignment="128" heading="璇存槑" hAlignment="1">
+    <backgroundColor red="0" alpha="0" green="0" blue="0"/>
+   </column>
+  </displayColumns>
+  <sortColumns/>
+  <cellStyles>
+   <oddColumns cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <evenColumns cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <oddRows cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <evenRows cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <firstColumn cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <lastColumn cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <headerRow cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <firstRow cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <lastRow cellBackgroundColor="255,255,255,255" enabled="0"/>
+  </cellStyles>
+  <headers>
+   <header width="0" sortOrder="0" sortByRank="0" attribute="" vAlignment="128" heading="" hAlignment="1">
+    <backgroundColor red="0" alpha="0" green="0" blue="0"/>
+   </header>
+   <header width="0" sortOrder="0" sortByRank="0" attribute="" vAlignment="128" heading="璇存槑" hAlignment="1">
+    <backgroundColor red="0" alpha="0" green="0" blue="0"/>
+   </header>
+  </headers>
+  <contents>
+   <row>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="璇�"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="2"/>
+     <Option name="valign" type="int" value="0"/>
+    </Option>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="鏄�"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="0"/>
+     <Option name="valign" type="int" value="0"/>
+    </Option>
+   </row>
+   <row>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="姣斾緥灏猴細"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="2"/>
+     <Option name="valign" type="int" value="128"/>
+    </Option>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="{scale}"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="1"/>
+     <Option name="valign" type="int" value="128"/>
+    </Option>
+   </row>
+   <row>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="鍒跺浘鏃堕棿锛�"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="2"/>
+     <Option name="valign" type="int" value="128"/>
+    </Option>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="{date}"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="1"/>
+     <Option name="valign" type="int" value="128"/>
+    </Option>
+   </row>
+  </contents>
+  <rowHeights>
+   <row height="0"/>
+   <row height="0"/>
+   <row height="0"/>
+  </rowHeights>
+  <columnWidths>
+   <column width="0"/>
+   <column width="0"/>
+  </columnWidths>
+ </LayoutMultiFrame>
+ <customproperties>
+  <property key="atlasRasterFormat" value="png"/>
+  <property key="imageAntialias" value="true"/>
+  <property key="imageCropMarginBottom" value="0"/>
+  <property key="imageCropMarginLeft" value="0"/>
+  <property key="imageCropMarginRight" value="0"/>
+  <property key="imageCropMarginTop" value="0"/>
+  <property key="imageCropToContents" value="false"/>
+  <property key="singleFile" value="true"/>
+  <property key="layers" value="{layers}"/>
+  <property key="imgPath" value="{imgPath}"/>
+ </customproperties>
+ <Atlas hideCoverage="0" filterFeatures="0" filenamePattern="'output_'||@atlas_featurenumber" coverageLayer="" enabled="0" sortFeatures="0" pageNameExpression=""/>
+</Layout>
diff --git a/MoonExp/Sources/Test.qgz b/MoonExp/Sources/Test.qgz
new file mode 100644
index 0000000..b0210fd
--- /dev/null
+++ b/MoonExp/Sources/Test.qgz
Binary files differ
diff --git a/MoonExp/Sources/Test.qpt b/MoonExp/Sources/Test.qpt
new file mode 100644
index 0000000..432b578
--- /dev/null
+++ b/MoonExp/Sources/Test.qpt
@@ -0,0 +1,510 @@
+<Layout units="mm" worldFileMap="{4e649c5d-cabe-431f-a385-d69809d87ebf}" name="Test" printResolution="300">
+ <Snapper snapToItems="1" tolerance="5" snapToGrid="0" snapToGuides="1"/>
+ <Grid resolution="10" offsetY="0" resUnits="mm" offsetX="0" offsetUnits="mm"/>
+ <PageCollection>
+  <symbol name="" force_rhr="0" type="fill" clip_to_extent="1" alpha="1">
+   <layer locked="0" class="SimpleFill" pass="0" enabled="1">
+    <prop v="3x:0,0,0,0,0,0" k="border_width_map_unit_scale"/>
+    <prop v="255,255,255,255" k="color"/>
+    <prop v="miter" k="joinstyle"/>
+    <prop v="0,0" k="offset"/>
+    <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+    <prop v="MM" k="offset_unit"/>
+    <prop v="35,35,35,255" k="outline_color"/>
+    <prop v="no" k="outline_style"/>
+    <prop v="0.26" k="outline_width"/>
+    <prop v="MM" k="outline_width_unit"/>
+    <prop v="solid" k="style"/>
+    <data_defined_properties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </data_defined_properties>
+   </layer>
+  </symbol>
+  <LayoutItem type="65638" excludeFromExports="0" groupUuid="" visibility="1" id="" position="0,0,mm" positionOnPage="0,0,mm" frameJoinStyle="miter" background="true" zValue="0" opacity="1" uuid="{72530018-3d33-4843-b661-79580c9b15e3}" frame="false" referencePoint="0" templateUuid="{72530018-3d33-4843-b661-79580c9b15e3}" blendMode="0" size="297,210,mm" positionLock="false" outlineWidthM="0.3,mm" itemRotation="0">
+   <FrameColor red="0" alpha="255" green="0" blue="0"/>
+   <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+   <LayoutObject>
+    <dataDefinedProperties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </dataDefinedProperties>
+    <customproperties/>
+   </LayoutObject>
+   <symbol name="" force_rhr="0" type="fill" clip_to_extent="1" alpha="1">
+    <layer locked="0" class="SimpleFill" pass="0" enabled="1">
+     <prop v="3x:0,0,0,0,0,0" k="border_width_map_unit_scale"/>
+     <prop v="255,255,255,255" k="color"/>
+     <prop v="miter" k="joinstyle"/>
+     <prop v="0,0" k="offset"/>
+     <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+     <prop v="MM" k="offset_unit"/>
+     <prop v="35,35,35,255" k="outline_color"/>
+     <prop v="no" k="outline_style"/>
+     <prop v="0.26" k="outline_width"/>
+     <prop v="MM" k="outline_width_unit"/>
+     <prop v="solid" k="style"/>
+     <data_defined_properties>
+      <Option type="Map">
+       <Option name="name" type="QString" value=""/>
+       <Option name="properties"/>
+       <Option name="type" type="QString" value="collection"/>
+      </Option>
+     </data_defined_properties>
+    </layer>
+   </symbol>
+  </LayoutItem>
+  <GuideCollection visible="1"/>
+ </PageCollection>
+ <LayoutItem pictureWidth="8.85237" type="65640" excludeFromExports="0" svgFillColor="255,255,255,255" groupUuid="" visibility="1" northOffset="0" anchorPoint="0" id="鎸囧寳閽�" position="278.938,4.42978,mm" svgBorderWidth="0.2" pictureHeight="11.1743" positionOnPage="278.938,4.42978,mm" resizeMode="0" frameJoinStyle="miter" background="false" zValue="8" northMode="0" opacity="1" pictureRotation="0" uuid="{6a1655ac-d65f-4163-9e89-5f98536a0c31}" frame="false" referencePoint="0" templateUuid="{6a1655ac-d65f-4163-9e89-5f98536a0c31}" blendMode="0" mapUuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" mode="0" size="10.4237,11.1743,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" svgBorderColor="0,0,0,255" file=":/images/north_arrows/layout_default_north_arrow.svg">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+ </LayoutItem>
+ <LayoutItem halign="4" type="65641" excludeFromExports="0" labelText="涓浗 x x x x x 宸ョ▼鏈夐檺鍏徃" htmlState="0" groupUuid="" visibility="1" id="鍏徃" position="212.337,195.29,mm" marginY="0" positionOnPage="212.337,195.29,mm" frameJoinStyle="miter" background="false" zValue="8" opacity="1" uuid="{13528ba9-5ea4-45e3-b56e-a975eb046d54}" frame="false" referencePoint="0" templateUuid="{13528ba9-5ea4-45e3-b56e-a975eb046d54}" valign="128" blendMode="0" size="76.0244,9.39831,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" marginX="0">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+  <LabelFont description="瀹嬩綋,14,-1,5,50,0,0,0,0,0,甯歌" style="甯歌"/>
+  <FontColor red="0" alpha="255" green="0" blue="0"/>
+ </LayoutItem>
+ <LayoutItem pictureWidth="43.6229" type="65640" excludeFromExports="0" svgFillColor="255,255,255,255" groupUuid="" visibility="1" northOffset="0" anchorPoint="0" id="鍥句緥" position="11.7,117,mm" svgBorderWidth="0.2" pictureHeight="72.286" positionOnPage="11.7,117,mm" resizeMode="1" frameJoinStyle="miter" background="false" zValue="8" northMode="0" opacity="1" pictureRotation="0" uuid="{a53c1ba6-77af-48ea-bd86-8e12ae041979}" frame="false" referencePoint="0" templateUuid="{a53c1ba6-77af-48ea-bd86-8e12ae041979}" blendMode="0" mapUuid="" mode="1" size="43.6229,72.286,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" svgBorderColor="0,0,0,255" file="E:\terrait\TianJin\ExportMap\ExportMap\Sources\Lengend.png">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+ </LayoutItem>
+ <LayoutItem pictureWidth="10.7409" type="65640" excludeFromExports="0" svgFillColor="255,255,255,255" groupUuid="" visibility="1" northOffset="0" anchorPoint="0" id="Logo" position="200.5,194.948,mm" svgBorderWidth="0.2" pictureHeight="10.7409" positionOnPage="200.5,194.948,mm" resizeMode="0" frameJoinStyle="miter" background="false" zValue="7" northMode="0" opacity="1" pictureRotation="0" uuid="{29298722-a58a-42f7-85d1-04564ad9366d}" frame="false" referencePoint="0" templateUuid="{29298722-a58a-42f7-85d1-04564ad9366d}" blendMode="0" mapUuid="" mode="1" size="11.6809,10.7409,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" svgBorderColor="0,0,0,255" file="E:\terrait\TianJin\ExportMap\ExportMap\Sources\logo.png">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+ </LayoutItem>
+ <LayoutItem type="65647" excludeFromExports="0" groupUuid="" visibility="1" multiFrame="{3f590e9a-19b4-46d3-90bb-6a188b24aaa6}" hideBackgroundIfEmpty="0" id="璇存槑" sectionX="0" position="247,174,mm" positionOnPage="247,174,mm" frameJoinStyle="miter" background="false" zValue="6" opacity="1" uuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" frame="false" referencePoint="0" templateUuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" sectionWidth="39.6466" blendMode="0" multiFrameTemplateUuid="{3f590e9a-19b4-46d3-90bb-6a188b24aaa6}" sectionY="0" size="39.6466,15.6032,mm" hidePageIfEmpty="0" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" sectionHeight="15.6032">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+ </LayoutItem>
+ <LayoutItem halign="4" type="65641" excludeFromExports="0" labelText="绠¢亾鍩虹澶ф暟鎹钩鍙帮紙DW1-1锛�" htmlState="0" groupUuid="" visibility="1" id="鏍囬" position="84.816,4.42978,mm" marginY="0" positionOnPage="84.816,4.42978,mm" frameJoinStyle="miter" background="false" zValue="4" opacity="1" uuid="{81ccb104-2767-491d-8296-cd4ccbebed3e}" frame="false" referencePoint="0" templateUuid="{81ccb104-2767-491d-8296-cd4ccbebed3e}" valign="128" blendMode="0" size="129.364,11.1743,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0" marginX="0">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+  <LabelFont description="寰蒋闆呴粦,24,-1,5,75,0,0,0,0,0,Bold" style="Bold"/>
+  <FontColor red="0" alpha="255" green="0" blue="0"/>
+ </LayoutItem>
+ <LayoutItem type="65639" excludeFromExports="0" followPresetName="" groupUuid="" visibility="1" id="鍦板浘" position="9,18,mm" positionOnPage="9,18,mm" frameJoinStyle="round" drawCanvasItems="true" background="true" zValue="2" isTemporal="0" opacity="1" uuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" frame="true" referencePoint="0" templateUuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" blendMode="0" mapFlags="0" mapRotation="0" size="280,174,mm" followPreset="false" positionLock="true" keepLayerSet="false" outlineWidthM="4,px" itemRotation="0" labelMargin="0,mm">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+  <Extent xmax="152.1417474619615291" ymax="64.40696224962117356" ymin="9.87192880480477086" xmin="64.38422237834893735"/>
+  <crs>
+   <spatialrefsys>
+    <wkt>GEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["unknown"],AREA["World"],BBOX[-90,-180,90,180]],ID["EPSG",4326]]</wkt>
+    <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
+    <srsid>3452</srsid>
+    <srid>4326</srid>
+    <authid>EPSG:4326</authid>
+    <description>WGS 84</description>
+    <projectionacronym>longlat</projectionacronym>
+    <ellipsoidacronym>EPSG:7030</ellipsoidacronym>
+    <geographicflag>true</geographicflag>
+   </spatialrefsys>
+  </crs>
+  <LayerSet/>
+  <ComposerMapGrid intervalY="15" bottomFrameDivisions="0" rotatedTicksMinimumAngle="0" showAnnotation="1" rotatedTicksMarginToCorner="0" annotationPrecision="3" uuid="{33b582a6-ae09-42c2-b50b-ae68c9d6d71a}" rightAnnotationPosition="1" gridFramePenThickness="0.5" topAnnotationPosition="1" topFrameDivisions="0" rotatedTicksLengthMode="0" show="0" maximumIntervalWidth="10" gridFrameMargin="0" topAnnotationDisplay="0" annotationExpression="" unit="1" offsetY="5" rotatedAnnotationsLengthMode="0" topAnnotationDirection="0" minimumIntervalWidth="12" frameFillColor2="0,0,0,255" annotationFormat="0" rotatedAnnotationsMinimumAngle="0" intervalX="15" gridStyle="3" bottomAnnotationDirection="0" name="缃戞牸" crossLength="3" leftFrameDivisions="0" blendMode="0" rightFrameDivisions="0" position="3" rotatedAnnotationsMarginToCorner="0" gridFrameWidth="1" rightAnnotationDirection="2" frameFillColor1="255,255,255,255" leftAnnotationDisplay="0" gridFramePenColor="0,0,0,255" leftAnnotationPosition="1" offsetX="0" bottomAnnotationDisplay="0" leftAnnotationDirection="2" rotatedAnnotationsEnabled="1" gridFrameSideFlags="15" bottomAnnotationPosition="1" rotatedTicksEnabled="1" gridFrameStyle="3" frameAnnotationDistance="0.5" rightAnnotationDisplay="0">
+   <lineStyle>
+    <symbol name="" force_rhr="0" type="line" clip_to_extent="1" alpha="0.616">
+     <layer locked="0" class="SimpleLine" pass="0" enabled="1">
+      <prop v="0" k="align_dash_pattern"/>
+      <prop v="round" k="capstyle"/>
+      <prop v="0.66;2" k="customdash"/>
+      <prop v="3x:0,0,0,0,0,0" k="customdash_map_unit_scale"/>
+      <prop v="MM" k="customdash_unit"/>
+      <prop v="0" k="dash_pattern_offset"/>
+      <prop v="3x:0,0,0,0,0,0" k="dash_pattern_offset_map_unit_scale"/>
+      <prop v="MM" k="dash_pattern_offset_unit"/>
+      <prop v="0" k="draw_inside_polygon"/>
+      <prop v="round" k="joinstyle"/>
+      <prop v="0,0,0,255" k="line_color"/>
+      <prop v="solid" k="line_style"/>
+      <prop v="0.5" k="line_width"/>
+      <prop v="MM" k="line_width_unit"/>
+      <prop v="0" k="offset"/>
+      <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+      <prop v="MM" k="offset_unit"/>
+      <prop v="0" k="ring_filter"/>
+      <prop v="0" k="tweak_dash_pattern_on_corners"/>
+      <prop v="1" k="use_custom_dash"/>
+      <prop v="3x:0,0,0,0,0,0" k="width_map_unit_scale"/>
+      <data_defined_properties>
+       <Option type="Map">
+        <Option name="name" type="QString" value=""/>
+        <Option name="properties"/>
+        <Option name="type" type="QString" value="collection"/>
+       </Option>
+      </data_defined_properties>
+     </layer>
+    </symbol>
+   </lineStyle>
+   <markerStyle>
+    <symbol name="" force_rhr="0" type="marker" clip_to_extent="1" alpha="1">
+     <layer locked="0" class="SimpleMarker" pass="0" enabled="1">
+      <prop v="0" k="angle"/>
+      <prop v="0,0,0,255" k="color"/>
+      <prop v="1" k="horizontal_anchor_point"/>
+      <prop v="bevel" k="joinstyle"/>
+      <prop v="circle" k="name"/>
+      <prop v="0,0" k="offset"/>
+      <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+      <prop v="MM" k="offset_unit"/>
+      <prop v="35,35,35,255" k="outline_color"/>
+      <prop v="solid" k="outline_style"/>
+      <prop v="0" k="outline_width"/>
+      <prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
+      <prop v="MM" k="outline_width_unit"/>
+      <prop v="diameter" k="scale_method"/>
+      <prop v="2" k="size"/>
+      <prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
+      <prop v="MM" k="size_unit"/>
+      <prop v="1" k="vertical_anchor_point"/>
+      <data_defined_properties>
+       <Option type="Map">
+        <Option name="name" type="QString" value=""/>
+        <Option name="properties"/>
+        <Option name="type" type="QString" value="collection"/>
+       </Option>
+      </data_defined_properties>
+     </layer>
+    </symbol>
+   </markerStyle>
+   <spatialrefsys>
+    <wkt>GEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["unknown"],AREA["World"],BBOX[-90,-180,90,180]],ID["EPSG",4326]]</wkt>
+    <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
+    <srsid>3452</srsid>
+    <srid>4326</srid>
+    <authid>EPSG:4326</authid>
+    <description>WGS 84</description>
+    <projectionacronym>longlat</projectionacronym>
+    <ellipsoidacronym>EPSG:7030</ellipsoidacronym>
+    <geographicflag>true</geographicflag>
+   </spatialrefsys>
+   <text-style fontWordSpacing="0" fontLetterSpacing="0" fontWeight="50" fontStrikeout="0" previewBkgrdColor="255,255,255,255" fontUnderline="0" multilineHeight="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0" namedStyle="" fontSizeUnit="Point" fontSize="8" fontKerning="1" textOrientation="horizontal" capitalization="0" textOpacity="1" fontItalic="0" blendMode="0" allowHtml="0" textColor="0,0,0,255" fontFamily="SimSun">
+    <text-buffer bufferSizeUnits="MM" bufferColor="255,255,255,255" bufferDraw="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferSize="1" bufferNoFill="1" bufferBlendMode="0" bufferJoinStyle="128" bufferOpacity="1"/>
+    <text-mask maskOpacity="1" maskSizeUnits="MM" maskJoinStyle="128" maskSize="1.5" maskType="0" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskEnabled="0" maskedSymbolLayers=""/>
+    <background shapeRotation="0" shapeOpacity="1" shapeBorderColor="128,128,128,255" shapeSizeUnit="MM" shapeType="0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeFillColor="255,255,255,255" shapeSizeX="0" shapeRadiiUnit="MM" shapeOffsetY="0" shapeRadiiX="0" shapeOffsetUnit="MM" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeRotationType="0" shapeSizeY="0" shapeOffsetX="0" shapeBorderWidthUnit="MM" shapeJoinStyle="64" shapeSizeType="0" shapeDraw="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeBlendMode="0" shapeSVGFile="" shapeBorderWidth="0">
+     <symbol name="markerSymbol" force_rhr="0" type="marker" clip_to_extent="1" alpha="1">
+      <layer locked="0" class="SimpleMarker" pass="0" enabled="1">
+       <prop v="0" k="angle"/>
+       <prop v="231,113,72,255" k="color"/>
+       <prop v="1" k="horizontal_anchor_point"/>
+       <prop v="bevel" k="joinstyle"/>
+       <prop v="circle" k="name"/>
+       <prop v="0,0" k="offset"/>
+       <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+       <prop v="MM" k="offset_unit"/>
+       <prop v="35,35,35,255" k="outline_color"/>
+       <prop v="solid" k="outline_style"/>
+       <prop v="0" k="outline_width"/>
+       <prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
+       <prop v="MM" k="outline_width_unit"/>
+       <prop v="diameter" k="scale_method"/>
+       <prop v="2" k="size"/>
+       <prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
+       <prop v="MM" k="size_unit"/>
+       <prop v="1" k="vertical_anchor_point"/>
+       <data_defined_properties>
+        <Option type="Map">
+         <Option name="name" type="QString" value=""/>
+         <Option name="properties"/>
+         <Option name="type" type="QString" value="collection"/>
+        </Option>
+       </data_defined_properties>
+      </layer>
+     </symbol>
+    </background>
+    <shadow shadowOffsetDist="1" shadowRadiusAlphaOnly="0" shadowBlendMode="6" shadowOffsetGlobal="1" shadowOffsetAngle="135" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowDraw="0" shadowRadiusUnit="MM" shadowOffsetUnit="MM" shadowScale="100" shadowOpacity="0.7" shadowColor="0,0,0,255" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowUnder="0" shadowRadius="1.5"/>
+    <dd_properties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </dd_properties>
+   </text-style>
+   <LayoutObject>
+    <dataDefinedProperties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </dataDefinedProperties>
+    <customproperties/>
+   </LayoutObject>
+  </ComposerMapGrid>
+  <AtlasMap scalingMode="2" margin="0.10000000000000001" atlasDriven="0"/>
+  <labelBlockingItems/>
+  <atlasClippingSettings forceLabelsInside="0" restrictLayers="0" enabled="0" clippingType="1">
+   <layersToClip/>
+  </atlasClippingSettings>
+  <itemClippingSettings clipSource="" forceLabelsInside="0" enabled="0" clippingType="1"/>
+ </LayoutItem>
+ <LayoutItem type="65643" excludeFromExports="0" groupUuid="" visibility="1" shapeType="1" id="杈规" position="2.6816,2,mm" cornerRadiusMeasure="0,mm" positionOnPage="2.6816,2,mm" frameJoinStyle="miter" background="false" zValue="1" opacity="1" uuid="{76e708b9-4aa8-4365-b8ba-3157f836dfa9}" frame="false" referencePoint="0" templateUuid="{76e708b9-4aa8-4365-b8ba-3157f836dfa9}" blendMode="0" size="292.354,205.447,mm" positionLock="true" outlineWidthM="0.3,mm" itemRotation="0">
+  <FrameColor red="0" alpha="255" green="0" blue="0"/>
+  <BackgroundColor red="255" alpha="255" green="255" blue="255"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+  <symbol name="" force_rhr="0" type="fill" clip_to_extent="1" alpha="1">
+   <layer locked="0" class="SimpleLine" pass="0" enabled="1">
+    <prop v="0" k="align_dash_pattern"/>
+    <prop v="square" k="capstyle"/>
+    <prop v="5;2" k="customdash"/>
+    <prop v="3x:0,0,0,0,0,0" k="customdash_map_unit_scale"/>
+    <prop v="Pixel" k="customdash_unit"/>
+    <prop v="0" k="dash_pattern_offset"/>
+    <prop v="3x:0,0,0,0,0,0" k="dash_pattern_offset_map_unit_scale"/>
+    <prop v="MM" k="dash_pattern_offset_unit"/>
+    <prop v="0" k="draw_inside_polygon"/>
+    <prop v="bevel" k="joinstyle"/>
+    <prop v="53,121,177,255" k="line_color"/>
+    <prop v="solid" k="line_style"/>
+    <prop v="0.96" k="line_width"/>
+    <prop v="Pixel" k="line_width_unit"/>
+    <prop v="0" k="offset"/>
+    <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+    <prop v="Pixel" k="offset_unit"/>
+    <prop v="0" k="ring_filter"/>
+    <prop v="0" k="tweak_dash_pattern_on_corners"/>
+    <prop v="0" k="use_custom_dash"/>
+    <prop v="3x:0,0,0,0,0,0" k="width_map_unit_scale"/>
+    <data_defined_properties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </data_defined_properties>
+   </layer>
+  </symbol>
+ </LayoutItem>
+ <LayoutMultiFrame type="65652" showEmptyRows="0" backgroundColor="255,255,255,255" headerMode="2" showGrid="0" headerHAlignment="0" resizeMode="0" emptyTableMode="0" gridColor="0,0,0,255" includeHeader="0" uuid="{3b12245e-8390-439c-bcc3-c9bbf6061b53}" wrapBehavior="0" templateUuid="{3b12245e-8390-439c-bcc3-c9bbf6061b53}" horizontalGrid="1" emptyTableMessage="" gridStrokeWidth="0.5" verticalGrid="1" cellMargin="1">
+  <childFrame uuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" templateUuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}"/>
+  <LayoutObject>
+   <dataDefinedProperties>
+    <Option type="Map">
+     <Option name="name" type="QString" value=""/>
+     <Option name="properties"/>
+     <Option name="type" type="QString" value="collection"/>
+    </Option>
+   </dataDefinedProperties>
+   <customproperties/>
+  </LayoutObject>
+  <headerTextFormat>
+   <text-style fontWordSpacing="0" fontLetterSpacing="0" fontWeight="50" fontStrikeout="0" previewBkgrdColor="255,255,255,255" fontUnderline="0" multilineHeight="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0" namedStyle="" fontSizeUnit="Point" fontSize="10" fontKerning="1" textOrientation="horizontal" capitalization="0" textOpacity="1" fontItalic="0" blendMode="0" allowHtml="0" textColor="0,0,0,255" fontFamily="SimSun">
+    <text-buffer bufferSizeUnits="MM" bufferColor="255,255,255,255" bufferDraw="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferSize="1" bufferNoFill="1" bufferBlendMode="0" bufferJoinStyle="128" bufferOpacity="1"/>
+    <text-mask maskOpacity="1" maskSizeUnits="MM" maskJoinStyle="128" maskSize="1.5" maskType="0" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskEnabled="0" maskedSymbolLayers=""/>
+    <background shapeRotation="0" shapeOpacity="1" shapeBorderColor="128,128,128,255" shapeSizeUnit="MM" shapeType="0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeFillColor="255,255,255,255" shapeSizeX="0" shapeRadiiUnit="MM" shapeOffsetY="0" shapeRadiiX="0" shapeOffsetUnit="MM" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeRotationType="0" shapeSizeY="0" shapeOffsetX="0" shapeBorderWidthUnit="MM" shapeJoinStyle="64" shapeSizeType="0" shapeDraw="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeBlendMode="0" shapeSVGFile="" shapeBorderWidth="0"/>
+    <shadow shadowOffsetDist="1" shadowRadiusAlphaOnly="0" shadowBlendMode="6" shadowOffsetGlobal="1" shadowOffsetAngle="135" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowDraw="0" shadowRadiusUnit="MM" shadowOffsetUnit="MM" shadowScale="100" shadowOpacity="0.7" shadowColor="0,0,0,255" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowUnder="0" shadowRadius="1.5"/>
+    <dd_properties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </dd_properties>
+   </text-style>
+  </headerTextFormat>
+  <contentTextFormat>
+   <text-style fontWordSpacing="0" fontLetterSpacing="0" fontWeight="50" fontStrikeout="0" previewBkgrdColor="255,255,255,255" fontUnderline="0" multilineHeight="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0" namedStyle="" fontSizeUnit="Point" fontSize="10" fontKerning="1" textOrientation="horizontal" capitalization="0" textOpacity="1" fontItalic="0" blendMode="0" allowHtml="0" textColor="0,0,0,255" fontFamily="SimSun">
+    <text-buffer bufferSizeUnits="MM" bufferColor="255,255,255,255" bufferDraw="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferSize="1" bufferNoFill="1" bufferBlendMode="0" bufferJoinStyle="128" bufferOpacity="1"/>
+    <text-mask maskOpacity="1" maskSizeUnits="MM" maskJoinStyle="128" maskSize="1.5" maskType="0" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskEnabled="0" maskedSymbolLayers=""/>
+    <background shapeRotation="0" shapeOpacity="1" shapeBorderColor="128,128,128,255" shapeSizeUnit="MM" shapeType="0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeFillColor="255,255,255,255" shapeSizeX="0" shapeRadiiUnit="MM" shapeOffsetY="0" shapeRadiiX="0" shapeOffsetUnit="MM" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeRotationType="0" shapeSizeY="0" shapeOffsetX="0" shapeBorderWidthUnit="MM" shapeJoinStyle="64" shapeSizeType="0" shapeDraw="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeBlendMode="0" shapeSVGFile="" shapeBorderWidth="0"/>
+    <shadow shadowOffsetDist="1" shadowRadiusAlphaOnly="0" shadowBlendMode="6" shadowOffsetGlobal="1" shadowOffsetAngle="135" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowDraw="0" shadowRadiusUnit="MM" shadowOffsetUnit="MM" shadowScale="100" shadowOpacity="0.7" shadowColor="0,0,0,255" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowUnder="0" shadowRadius="1.5"/>
+    <dd_properties>
+     <Option type="Map">
+      <Option name="name" type="QString" value=""/>
+      <Option name="properties"/>
+      <Option name="type" type="QString" value="collection"/>
+     </Option>
+    </dd_properties>
+   </text-style>
+  </contentTextFormat>
+  <displayColumns>
+   <column width="0" sortOrder="0" sortByRank="0" attribute="" vAlignment="128" heading="" hAlignment="1">
+    <backgroundColor red="0" alpha="0" green="0" blue="0"/>
+   </column>
+   <column width="0" sortOrder="0" sortByRank="0" attribute="" vAlignment="128" heading="璇存槑" hAlignment="1">
+    <backgroundColor red="0" alpha="0" green="0" blue="0"/>
+   </column>
+  </displayColumns>
+  <sortColumns/>
+  <cellStyles>
+   <oddColumns cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <evenColumns cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <oddRows cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <evenRows cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <firstColumn cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <lastColumn cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <headerRow cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <firstRow cellBackgroundColor="255,255,255,255" enabled="0"/>
+   <lastRow cellBackgroundColor="255,255,255,255" enabled="0"/>
+  </cellStyles>
+  <headers>
+   <header width="0" sortOrder="0" sortByRank="0" attribute="" vAlignment="128" heading="" hAlignment="1">
+    <backgroundColor red="0" alpha="0" green="0" blue="0"/>
+   </header>
+   <header width="0" sortOrder="0" sortByRank="0" attribute="" vAlignment="128" heading="璇存槑" hAlignment="1">
+    <backgroundColor red="0" alpha="0" green="0" blue="0"/>
+   </header>
+  </headers>
+  <contents>
+   <row>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="璇�"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="2"/>
+     <Option name="valign" type="int" value="0"/>
+    </Option>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="鏄�"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="0"/>
+     <Option name="valign" type="int" value="0"/>
+    </Option>
+   </row>
+   <row>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="姣斾緥灏猴細"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="2"/>
+     <Option name="valign" type="int" value="128"/>
+    </Option>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="1锛�25涓�"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="1"/>
+     <Option name="valign" type="int" value="128"/>
+    </Option>
+   </row>
+   <row>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="鍒跺浘鏃堕棿锛�"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="2"/>
+     <Option name="valign" type="int" value="128"/>
+    </Option>
+    <Option type="Map">
+     <Option name="background" type="color" value=""/>
+     <Option name="content" type="QString" value="2022.11.06"/>
+     <Option name="foreground" type="color" value=""/>
+     <Option name="halign" type="int" value="1"/>
+     <Option name="valign" type="int" value="128"/>
+    </Option>
+   </row>
+  </contents>
+  <rowHeights>
+   <row height="0"/>
+   <row height="0"/>
+   <row height="0"/>
+  </rowHeights>
+  <columnWidths>
+   <column width="0"/>
+   <column width="0"/>
+  </columnWidths>
+ </LayoutMultiFrame>
+ <customproperties>
+  <property key="atlasRasterFormat" value="png"/>
+  <property key="imageAntialias" value="true"/>
+  <property key="imageCropMarginBottom" value="0"/>
+  <property key="imageCropMarginLeft" value="0"/>
+  <property key="imageCropMarginRight" value="0"/>
+  <property key="imageCropMarginTop" value="0"/>
+  <property key="imageCropToContents" value="false"/>
+  <property key="singleFile" value="true"/>
+  <property key="layers" value="bs_project,th_strategic_channel,m_hydraulic_protection,m_marker,m_pipeline,m_sitepoint,m_valvehousepoint,m_crossing,楂樺痉褰卞儚"/>
+  <property key="imgPath" value="E:\terrait\TianJin\ExportMap\ExportMap\Sources\Test.png"/>
+  <property key="layers" value="椤圭洰,绔欏満,绠¢亾涓績绾�,鎴樼暐閫氶亾,褰卞儚娉ㄨ,褰卞儚鍥�"/>
+  <property key="imgPath" value="E:\terrait\TianJin\ExportMap\ExportMap\Sources\Test.png"/>
+ </customproperties>
+ <Atlas hideCoverage="0" filterFeatures="0" filenamePattern="'output_'||@atlas_featurenumber" coverageLayer="" enabled="0" sortFeatures="0" pageNameExpression=""/>
+</Layout>
diff --git a/MoonExp/Sources/logo.png b/MoonExp/Sources/logo.png
new file mode 100644
index 0000000..e485c0f
--- /dev/null
+++ b/MoonExp/Sources/logo.png
Binary files differ
diff --git a/MoonExp/cs/ExportUtil.cs b/MoonExp/cs/ExportUtil.cs
index 27ff854..62a1b32 100644
--- a/MoonExp/cs/ExportUtil.cs
+++ b/MoonExp/cs/ExportUtil.cs
@@ -48,7 +48,7 @@
             {
                 if (string.IsNullOrWhiteSpace(pyFile))
                 {
-                    pyFile = Path.Combine(SourcesPath, "render.py");
+                    pyFile = Path.Combine(SourcesPath, "MoonExp.py");
                 }
 
                 return pyFile;

--
Gitblit v1.9.3