管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-09-08 542d8a4aab372c511a98e05a1b58c3b1c3e3de7b
1
已添加4个文件
已修改1个文件
1089 ■■■■■ 文件已修改
ExportMap/Sources/Moon.qgz 补丁 | 查看 | 原始文档 | blame | 历史
ExportMap/Sources/Moon.qpt 474 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ExportMap/Sources/MoonExp.py 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MoonExp/Sources/MoonTemplate.qpt 474 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MoonExp/cs/ExportUtil.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ExportMap/Sources/Moon.qgz
Binary files differ
ExportMap/Sources/Moon.qpt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,474 @@
<Layout printResolution="300" units="mm" name="Moon" worldFileMap="{4e649c5d-cabe-431f-a385-d69809d87ebf}">
 <Snapper snapToGuides="1" tolerance="5" snapToGrid="0" snapToItems="1"/>
 <Grid resolution="10" offsetX="0" resUnits="mm" offsetUnits="mm" offsetY="0"/>
 <PageCollection>
  <symbol clip_to_extent="1" type="fill" name="" force_rhr="0" alpha="1">
   <layer class="SimpleFill" pass="0" enabled="1" locked="0">
    <prop k="border_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <prop k="color" v="255,255,255,255"/>
    <prop k="joinstyle" v="miter"/>
    <prop k="offset" v="0,0"/>
    <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <prop k="offset_unit" v="MM"/>
    <prop k="outline_color" v="35,35,35,255"/>
    <prop k="outline_style" v="no"/>
    <prop k="outline_width" v="0.26"/>
    <prop k="outline_width_unit" v="MM"/>
    <prop k="style" v="solid"/>
    <data_defined_properties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </data_defined_properties>
   </layer>
  </symbol>
  <LayoutItem templateUuid="{72530018-3d33-4843-b661-79580c9b15e3}" frame="false" groupUuid="" itemRotation="0" visibility="1" excludeFromExports="0" size="297,210,mm" position="0,0,mm" outlineWidthM="0.3,mm" background="true" referencePoint="0" positionOnPage="0,0,mm" type="65638" uuid="{72530018-3d33-4843-b661-79580c9b15e3}" id="" frameJoinStyle="miter" positionLock="false" blendMode="0" zValue="0" opacity="1">
   <FrameColor blue="0" green="0" red="0" alpha="255"/>
   <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
   <LayoutObject>
    <dataDefinedProperties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </dataDefinedProperties>
    <customproperties/>
   </LayoutObject>
   <symbol clip_to_extent="1" type="fill" name="" force_rhr="0" alpha="1">
    <layer class="SimpleFill" pass="0" enabled="1" locked="0">
     <prop k="border_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
     <prop k="color" v="255,255,255,255"/>
     <prop k="joinstyle" v="miter"/>
     <prop k="offset" v="0,0"/>
     <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
     <prop k="offset_unit" v="MM"/>
     <prop k="outline_color" v="35,35,35,255"/>
     <prop k="outline_style" v="no"/>
     <prop k="outline_width" v="0.26"/>
     <prop k="outline_width_unit" v="MM"/>
     <prop k="style" v="solid"/>
     <data_defined_properties>
      <Option type="Map">
       <Option value="" type="QString" name="name"/>
       <Option name="properties"/>
       <Option value="collection" type="QString" name="type"/>
      </Option>
     </data_defined_properties>
    </layer>
   </symbol>
  </LayoutItem>
  <GuideCollection visible="1"/>
 </PageCollection>
 <LayoutItem templateUuid="{6a1655ac-d65f-4163-9e89-5f98536a0c31}" frame="false" northMode="0" file=":/images/north_arrows/layout_default_north_arrow.svg" mode="0" groupUuid="" itemRotation="0" svgBorderWidth="0.2" visibility="1" excludeFromExports="0" size="10.4237,11.1743,mm" position="278.938,4.42978,mm" outlineWidthM="0.3,mm" background="false" anchorPoint="0" pictureRotation="0" referencePoint="0" positionOnPage="278.938,4.42978,mm" type="65640" resizeMode="0" uuid="{6a1655ac-d65f-4163-9e89-5f98536a0c31}" id="指北针" pictureWidth="8.85237" mapUuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" northOffset="0" pictureHeight="11.1743" svgFillColor="255,255,255,255" frameJoinStyle="miter" positionLock="true" blendMode="0" svgBorderColor="0,0,0,255" zValue="8" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
 </LayoutItem>
 <LayoutItem templateUuid="{13528ba9-5ea4-45e3-b56e-a975eb046d54}" frame="false" marginY="0" groupUuid="" itemRotation="0" halign="4" visibility="1" excludeFromExports="0" size="76.0244,8.6585,mm" position="213.337,195.989,mm" outlineWidthM="0.3,mm" background="false" referencePoint="0" positionOnPage="213.337,195.989,mm" type="65641" uuid="{13528ba9-5ea4-45e3-b56e-a975eb046d54}" id="公司" htmlState="0" frameJoinStyle="miter" positionLock="true" labelText="月球大数据地理空间分析展示平台" valign="128" blendMode="0" zValue="8" marginX="0" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
  <LabelFont description="宋体,14,-1,5,50,0,0,0,0,0,常规" style="常规"/>
  <FontColor blue="0" green="0" red="0" alpha="255"/>
 </LayoutItem>
 <LayoutItem templateUuid="{a53c1ba6-77af-48ea-bd86-8e12ae041979}" frame="false" northMode="0" file="" mode="0" groupUuid="" itemRotation="0" svgBorderWidth="0.2" visibility="0" excludeFromExports="0" size="43.6229,72.286,mm" position="11.7,117,mm" outlineWidthM="0.3,mm" background="false" anchorPoint="0" pictureRotation="0" referencePoint="0" positionOnPage="11.7,117,mm" type="65640" resizeMode="1" uuid="{a53c1ba6-77af-48ea-bd86-8e12ae041979}" id="图例" pictureWidth="43.6229" mapUuid="" northOffset="0" pictureHeight="72.286" svgFillColor="255,255,255,255" frameJoinStyle="miter" positionLock="false" blendMode="0" svgBorderColor="0,0,0,255" zValue="8" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
 </LayoutItem>
 <LayoutItem templateUuid="{29298722-a58a-42f7-85d1-04564ad9366d}" frame="false" northMode="0" file="E:\terrait\TianJin\ExportMap\MoonExp\Sources\logo.png" mode="1" groupUuid="" itemRotation="0" svgBorderWidth="0.2" visibility="1" excludeFromExports="0" size="11.6809,10.7409,mm" position="200.5,194.948,mm" outlineWidthM="0.3,mm" background="false" anchorPoint="0" pictureRotation="0" referencePoint="0" positionOnPage="200.5,194.948,mm" type="65640" resizeMode="0" uuid="{29298722-a58a-42f7-85d1-04564ad9366d}" id="Logo" pictureWidth="10.7409" mapUuid="" northOffset="0" pictureHeight="10.7409" svgFillColor="255,255,255,255" frameJoinStyle="miter" positionLock="true" blendMode="0" svgBorderColor="0,0,0,255" zValue="7" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
 </LayoutItem>
 <LayoutItem templateUuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" frame="false" sectionX="0" groupUuid="" itemRotation="0" sectionWidth="39.6466" visibility="1" excludeFromExports="0" multiFrame="{3f590e9a-19b4-46d3-90bb-6a188b24aaa6}" size="39.6466,5.739,mm" position="247,183.864,mm" hideBackgroundIfEmpty="0" outlineWidthM="0.3,mm" sectionY="0" background="false" referencePoint="0" hidePageIfEmpty="0" positionOnPage="247,183.864,mm" type="65647" uuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" sectionHeight="5.739" id="说明" frameJoinStyle="miter" positionLock="false" multiFrameTemplateUuid="{3f590e9a-19b4-46d3-90bb-6a188b24aaa6}" blendMode="0" zValue="6" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
 </LayoutItem>
 <LayoutItem templateUuid="{81ccb104-2767-491d-8296-cd4ccbebed3e}" frame="false" marginY="0" groupUuid="" itemRotation="0" halign="4" visibility="1" excludeFromExports="0" size="165.122,11.1743,mm" position="68.2935,4.42978,mm" outlineWidthM="0.3,mm" background="false" referencePoint="0" positionOnPage="68.2935,4.42978,mm" type="65641" uuid="{81ccb104-2767-491d-8296-cd4ccbebed3e}" id="标题" htmlState="0" frameJoinStyle="miter" positionLock="true" labelText="SmartEarth三维地理信息系统平台V7.0" valign="128" blendMode="0" zValue="4" marginX="0" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
  <LabelFont description="微软雅黑,24,-1,5,75,0,0,0,0,0,Bold" style="Bold"/>
  <FontColor blue="0" green="0" red="0" alpha="255"/>
 </LayoutItem>
 <LayoutItem templateUuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" frame="true" keepLayerSet="false" groupUuid="" itemRotation="0" visibility="1" excludeFromExports="0" size="280,174,mm" position="9,18,mm" outlineWidthM="4,px" background="true" drawCanvasItems="true" mapRotation="0" referencePoint="0" followPresetName="" positionOnPage="9,18,mm" type="65639" uuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" id="地图" mapFlags="0" frameJoinStyle="round" positionLock="true" blendMode="0" isTemporal="0" zValue="2" labelMargin="0,mm" followPreset="false" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
  <Extent ymax="64.40696224962117356" ymin="9.87192880480477086" xmin="64.38422237834893735" xmax="152.1417474619615291"/>
  <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 gridFrameSideFlags="15" rotatedTicksEnabled="1" rightAnnotationDisplay="0" intervalX="15" offsetX="0" rotatedTicksLengthMode="0" show="0" position="3" topAnnotationDisplay="0" gridFrameWidth="1" gridStyle="3" rightFrameDivisions="0" crossLength="3" bottomAnnotationDisplay="0" rightAnnotationPosition="1" maximumIntervalWidth="10" annotationExpression="" unit="1" minimumIntervalWidth="12" rotatedAnnotationsMarginToCorner="0" gridFrameMargin="0" leftAnnotationPosition="1" annotationPrecision="3" rotatedTicksMarginToCorner="0" leftAnnotationDisplay="0" bottomAnnotationPosition="1" gridFramePenThickness="0.5" bottomAnnotationDirection="0" rotatedTicksMinimumAngle="0" topAnnotationPosition="1" name="网格" offsetY="5" frameFillColor1="255,255,255,255" uuid="{33b582a6-ae09-42c2-b50b-ae68c9d6d71a}" topFrameDivisions="0" showAnnotation="1" frameAnnotationDistance="0.5" gridFrameStyle="3" rotatedAnnotationsEnabled="1" rotatedAnnotationsLengthMode="0" frameFillColor2="0,0,0,255" rotatedAnnotationsMinimumAngle="0" topAnnotationDirection="0" annotationFormat="0" leftFrameDivisions="0" rightAnnotationDirection="2" leftAnnotationDirection="2" blendMode="0" gridFramePenColor="0,0,0,255" bottomFrameDivisions="0" intervalY="15">
   <lineStyle>
    <symbol clip_to_extent="1" type="line" name="" force_rhr="0" alpha="0.616">
     <layer class="SimpleLine" pass="0" enabled="1" locked="0">
      <prop k="align_dash_pattern" v="0"/>
      <prop k="capstyle" v="round"/>
      <prop k="customdash" v="0.66;2"/>
      <prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="customdash_unit" v="MM"/>
      <prop k="dash_pattern_offset" v="0"/>
      <prop k="dash_pattern_offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="dash_pattern_offset_unit" v="MM"/>
      <prop k="draw_inside_polygon" v="0"/>
      <prop k="joinstyle" v="round"/>
      <prop k="line_color" v="0,0,0,255"/>
      <prop k="line_style" v="solid"/>
      <prop k="line_width" v="0.5"/>
      <prop k="line_width_unit" v="MM"/>
      <prop k="offset" v="0"/>
      <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="offset_unit" v="MM"/>
      <prop k="ring_filter" v="0"/>
      <prop k="tweak_dash_pattern_on_corners" v="0"/>
      <prop k="use_custom_dash" v="1"/>
      <prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <data_defined_properties>
       <Option type="Map">
        <Option value="" type="QString" name="name"/>
        <Option name="properties"/>
        <Option value="collection" type="QString" name="type"/>
       </Option>
      </data_defined_properties>
     </layer>
    </symbol>
   </lineStyle>
   <markerStyle>
    <symbol clip_to_extent="1" type="marker" name="" force_rhr="0" alpha="1">
     <layer class="SimpleMarker" pass="0" enabled="1" locked="0">
      <prop k="angle" v="0"/>
      <prop k="color" v="0,0,0,255"/>
      <prop k="horizontal_anchor_point" v="1"/>
      <prop k="joinstyle" v="bevel"/>
      <prop k="name" v="circle"/>
      <prop k="offset" v="0,0"/>
      <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="offset_unit" v="MM"/>
      <prop k="outline_color" v="35,35,35,255"/>
      <prop k="outline_style" v="solid"/>
      <prop k="outline_width" v="0"/>
      <prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="outline_width_unit" v="MM"/>
      <prop k="scale_method" v="diameter"/>
      <prop k="size" v="2"/>
      <prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="size_unit" v="MM"/>
      <prop k="vertical_anchor_point" v="1"/>
      <data_defined_properties>
       <Option type="Map">
        <Option value="" type="QString" name="name"/>
        <Option name="properties"/>
        <Option value="collection" type="QString" name="type"/>
       </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 fontSize="8" namedStyle="" fontUnderline="0" multilineHeight="1" fontStrikeout="0" allowHtml="0" fontLetterSpacing="0" fontSizeUnit="Point" fontItalic="0" textOrientation="horizontal" capitalization="0" fontWeight="50" fontWordSpacing="0" previewBkgrdColor="255,255,255,255" fontKerning="1" fontFamily="SimSun" textColor="0,0,0,255" blendMode="0" textOpacity="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0">
    <text-buffer bufferDraw="0" bufferSize="1" bufferNoFill="1" bufferColor="255,255,255,255" bufferSizeUnits="MM" bufferOpacity="1" bufferJoinStyle="128" bufferBlendMode="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0"/>
    <text-mask maskType="0" maskEnabled="0" maskOpacity="1" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskSize="1.5" maskSizeUnits="MM" maskedSymbolLayers="" maskJoinStyle="128"/>
    <background shapeOffsetUnit="MM" shapeRotation="0" shapeSizeY="0" shapeOffsetY="0" shapeRadiiUnit="MM" shapeSizeX="0" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeJoinStyle="64" shapeDraw="0" shapeRotationType="0" shapeSizeUnit="MM" shapeRadiiX="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeOpacity="1" shapeOffsetX="0" shapeSVGFile="" shapeBorderWidth="0" shapeFillColor="255,255,255,255" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeSizeType="0" shapeBorderWidthUnit="MM" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeType="0" shapeBorderColor="128,128,128,255" shapeBlendMode="0">
     <symbol clip_to_extent="1" type="marker" name="markerSymbol" force_rhr="0" alpha="1">
      <layer class="SimpleMarker" pass="0" enabled="1" locked="0">
       <prop k="angle" v="0"/>
       <prop k="color" v="231,113,72,255"/>
       <prop k="horizontal_anchor_point" v="1"/>
       <prop k="joinstyle" v="bevel"/>
       <prop k="name" v="circle"/>
       <prop k="offset" v="0,0"/>
       <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
       <prop k="offset_unit" v="MM"/>
       <prop k="outline_color" v="35,35,35,255"/>
       <prop k="outline_style" v="solid"/>
       <prop k="outline_width" v="0"/>
       <prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
       <prop k="outline_width_unit" v="MM"/>
       <prop k="scale_method" v="diameter"/>
       <prop k="size" v="2"/>
       <prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
       <prop k="size_unit" v="MM"/>
       <prop k="vertical_anchor_point" v="1"/>
       <data_defined_properties>
        <Option type="Map">
         <Option value="" type="QString" name="name"/>
         <Option name="properties"/>
         <Option value="collection" type="QString" name="type"/>
        </Option>
       </data_defined_properties>
      </layer>
     </symbol>
    </background>
    <shadow shadowDraw="0" shadowScale="100" shadowColor="0,0,0,255" shadowRadiusAlphaOnly="0" shadowUnder="0" shadowRadius="1.5" shadowOffsetUnit="MM" shadowOffsetDist="1" shadowOffsetAngle="135" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusUnit="MM" shadowOffsetGlobal="1" shadowOpacity="0.7" shadowBlendMode="6"/>
    <dd_properties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </dd_properties>
   </text-style>
   <LayoutObject>
    <dataDefinedProperties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </dataDefinedProperties>
    <customproperties/>
   </LayoutObject>
  </ComposerMapGrid>
  <AtlasMap atlasDriven="0" margin="0.10000000000000001" scalingMode="2"/>
  <labelBlockingItems/>
  <atlasClippingSettings clippingType="1" forceLabelsInside="0" restrictLayers="0" enabled="0">
   <layersToClip/>
  </atlasClippingSettings>
  <itemClippingSettings clippingType="1" forceLabelsInside="0" enabled="0" clipSource=""/>
 </LayoutItem>
 <LayoutItem templateUuid="{76e708b9-4aa8-4365-b8ba-3157f836dfa9}" frame="false" groupUuid="" itemRotation="0" visibility="1" excludeFromExports="0" size="292.354,205.447,mm" position="2.6816,2,mm" outlineWidthM="0.3,mm" background="false" referencePoint="0" cornerRadiusMeasure="0,mm" positionOnPage="2.6816,2,mm" type="65643" uuid="{76e708b9-4aa8-4365-b8ba-3157f836dfa9}" id="边框" frameJoinStyle="miter" positionLock="true" blendMode="0" shapeType="1" zValue="1" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
  <symbol clip_to_extent="1" type="fill" name="" force_rhr="0" alpha="1">
   <layer class="SimpleLine" pass="0" enabled="1" locked="0">
    <prop k="align_dash_pattern" v="0"/>
    <prop k="capstyle" v="square"/>
    <prop k="customdash" v="5;2"/>
    <prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <prop k="customdash_unit" v="Pixel"/>
    <prop k="dash_pattern_offset" v="0"/>
    <prop k="dash_pattern_offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <prop k="dash_pattern_offset_unit" v="MM"/>
    <prop k="draw_inside_polygon" v="0"/>
    <prop k="joinstyle" v="bevel"/>
    <prop k="line_color" v="53,121,177,255"/>
    <prop k="line_style" v="solid"/>
    <prop k="line_width" v="0.96"/>
    <prop k="line_width_unit" v="Pixel"/>
    <prop k="offset" v="0"/>
    <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <prop k="offset_unit" v="Pixel"/>
    <prop k="ring_filter" v="0"/>
    <prop k="tweak_dash_pattern_on_corners" v="0"/>
    <prop k="use_custom_dash" v="0"/>
    <prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <data_defined_properties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </data_defined_properties>
   </layer>
  </symbol>
 </LayoutItem>
 <LayoutMultiFrame templateUuid="{3b12245e-8390-439c-bcc3-c9bbf6061b53}" emptyTableMode="0" emptyTableMessage="" verticalGrid="1" gridColor="0,0,0,255" horizontalGrid="1" gridStrokeWidth="0.5" headerMode="2" backgroundColor="255,255,255,255" cellMargin="1" wrapBehavior="0" type="65652" showGrid="0" resizeMode="0" uuid="{3b12245e-8390-439c-bcc3-c9bbf6061b53}" showEmptyRows="0" includeHeader="0" headerHAlignment="2">
  <childFrame templateUuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" uuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
  <headerTextFormat>
   <text-style fontSize="10" namedStyle="" fontUnderline="0" multilineHeight="1" fontStrikeout="0" allowHtml="0" fontLetterSpacing="0" fontSizeUnit="Point" fontItalic="0" textOrientation="horizontal" capitalization="0" fontWeight="50" fontWordSpacing="0" previewBkgrdColor="255,255,255,255" fontKerning="1" fontFamily="SimSun" textColor="0,0,0,255" blendMode="0" textOpacity="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0">
    <text-buffer bufferDraw="0" bufferSize="1" bufferNoFill="1" bufferColor="255,255,255,255" bufferSizeUnits="MM" bufferOpacity="1" bufferJoinStyle="128" bufferBlendMode="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0"/>
    <text-mask maskType="0" maskEnabled="0" maskOpacity="1" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskSize="1.5" maskSizeUnits="MM" maskedSymbolLayers="" maskJoinStyle="128"/>
    <background shapeOffsetUnit="MM" shapeRotation="0" shapeSizeY="0" shapeOffsetY="0" shapeRadiiUnit="MM" shapeSizeX="0" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeJoinStyle="64" shapeDraw="0" shapeRotationType="0" shapeSizeUnit="MM" shapeRadiiX="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeOpacity="1" shapeOffsetX="0" shapeSVGFile="" shapeBorderWidth="0" shapeFillColor="255,255,255,255" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeSizeType="0" shapeBorderWidthUnit="MM" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeType="0" shapeBorderColor="128,128,128,255" shapeBlendMode="0"/>
    <shadow shadowDraw="0" shadowScale="100" shadowColor="0,0,0,255" shadowRadiusAlphaOnly="0" shadowUnder="0" shadowRadius="1.5" shadowOffsetUnit="MM" shadowOffsetDist="1" shadowOffsetAngle="135" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusUnit="MM" shadowOffsetGlobal="1" shadowOpacity="0.7" shadowBlendMode="6"/>
    <dd_properties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </dd_properties>
   </text-style>
  </headerTextFormat>
  <contentTextFormat>
   <text-style fontSize="10" namedStyle="" fontUnderline="0" multilineHeight="1" fontStrikeout="0" allowHtml="0" fontLetterSpacing="0" fontSizeUnit="Point" fontItalic="0" textOrientation="horizontal" capitalization="0" fontWeight="50" fontWordSpacing="0" previewBkgrdColor="255,255,255,255" fontKerning="1" fontFamily="SimSun" textColor="0,0,0,255" blendMode="0" textOpacity="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0">
    <text-buffer bufferDraw="0" bufferSize="1" bufferNoFill="1" bufferColor="255,255,255,255" bufferSizeUnits="MM" bufferOpacity="1" bufferJoinStyle="128" bufferBlendMode="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0"/>
    <text-mask maskType="0" maskEnabled="0" maskOpacity="1" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskSize="1.5" maskSizeUnits="MM" maskedSymbolLayers="" maskJoinStyle="128"/>
    <background shapeOffsetUnit="MM" shapeRotation="0" shapeSizeY="0" shapeOffsetY="0" shapeRadiiUnit="MM" shapeSizeX="0" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeJoinStyle="64" shapeDraw="0" shapeRotationType="0" shapeSizeUnit="MM" shapeRadiiX="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeOpacity="1" shapeOffsetX="0" shapeSVGFile="" shapeBorderWidth="0" shapeFillColor="255,255,255,255" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeSizeType="0" shapeBorderWidthUnit="MM" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeType="0" shapeBorderColor="128,128,128,255" shapeBlendMode="0"/>
    <shadow shadowDraw="0" shadowScale="100" shadowColor="0,0,0,255" shadowRadiusAlphaOnly="0" shadowUnder="0" shadowRadius="1.5" shadowOffsetUnit="MM" shadowOffsetDist="1" shadowOffsetAngle="135" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusUnit="MM" shadowOffsetGlobal="1" shadowOpacity="0.7" shadowBlendMode="6"/>
    <dd_properties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </dd_properties>
   </text-style>
  </contentTextFormat>
  <displayColumns>
   <column width="0" heading="" sortByRank="0" sortOrder="0" vAlignment="128" attribute="" hAlignment="1">
    <backgroundColor blue="0" green="0" red="0" alpha="0"/>
   </column>
   <column width="0" heading="说明" sortByRank="0" sortOrder="0" vAlignment="128" attribute="" hAlignment="1">
    <backgroundColor blue="0" green="0" red="0" alpha="0"/>
   </column>
  </displayColumns>
  <sortColumns/>
  <cellStyles>
   <oddColumns enabled="0" cellBackgroundColor="255,255,255,255"/>
   <evenColumns enabled="0" cellBackgroundColor="255,255,255,255"/>
   <oddRows enabled="0" cellBackgroundColor="255,255,255,255"/>
   <evenRows enabled="0" cellBackgroundColor="255,255,255,255"/>
   <firstColumn enabled="0" cellBackgroundColor="255,255,255,255"/>
   <lastColumn enabled="0" cellBackgroundColor="255,255,255,255"/>
   <headerRow enabled="0" cellBackgroundColor="255,255,255,255"/>
   <firstRow enabled="0" cellBackgroundColor="255,255,255,255"/>
   <lastRow enabled="0" cellBackgroundColor="255,255,255,255"/>
  </cellStyles>
  <headers>
   <header width="0" heading="" sortByRank="0" sortOrder="0" vAlignment="128" attribute="" hAlignment="1">
    <backgroundColor blue="0" green="0" red="0" alpha="0"/>
   </header>
   <header width="0" heading="说明" sortByRank="0" sortOrder="0" vAlignment="128" attribute="" hAlignment="1">
    <backgroundColor blue="0" green="0" red="0" alpha="0"/>
   </header>
  </headers>
  <contents>
   <row>
    <Option type="Map">
     <Option value="" type="color" name="background"/>
     <Option value="制图时间:" type="QString" name="content"/>
     <Option value="" type="color" name="foreground"/>
     <Option value="2" type="int" name="halign"/>
     <Option value="32" type="int" name="valign"/>
    </Option>
    <Option type="Map">
     <Option value="" type="color" name="background"/>
     <Option value="2023.09.06" type="QString" name="content"/>
     <Option value="" type="color" name="foreground"/>
     <Option value="1" type="int" name="halign"/>
     <Option value="32" type="int" name="valign"/>
    </Option>
   </row>
  </contents>
  <rowHeights>
   <row height="0"/>
  </rowHeights>
  <columnWidths>
   <column width="0"/>
   <column width="0"/>
  </columnWidths>
 </LayoutMultiFrame>
 <customproperties>
  <property value="png" key="atlasRasterFormat"/>
  <property value="true" key="imageAntialias"/>
  <property value="0" key="imageCropMarginBottom"/>
  <property value="0" key="imageCropMarginLeft"/>
  <property value="0" key="imageCropMarginRight"/>
  <property value="0" key="imageCropMarginTop"/>
  <property value="false" key="imageCropToContents"/>
  <property value="true" key="singleFile"/>
  <property key="layers" value="geo_albedo_feature_point,geo_alkaline_rock_suite,geo_cliff_annotation,geo_construction_unit_boundary,copernican_craters_180,geo_age_not_determined,moon"/>
  <property key="imgPath" value="E:\terrait\TianJin\ExportMap\MoonExp\Sources\Test.png"/>
 </customproperties>
 <Atlas filenamePattern="'output_'||@atlas_featurenumber" filterFeatures="0" enabled="0" coverageLayer="" sortFeatures="0" hideCoverage="0" pageNameExpression=""/>
</Layout>
ExportMap/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="Moon.qgz", required=False)
    parser.add_argument("-qpt", type=str, default="Moon.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()
MoonExp/Sources/MoonTemplate.qpt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,474 @@
<Layout printResolution="{dpi}" units="mm" name="Moon" worldFileMap="{4e649c5d-cabe-431f-a385-d69809d87ebf}">
 <Snapper snapToGuides="1" tolerance="5" snapToGrid="0" snapToItems="1"/>
 <Grid resolution="10" offsetX="0" resUnits="mm" offsetUnits="mm" offsetY="0"/>
 <PageCollection>
  <symbol clip_to_extent="1" type="fill" name="" force_rhr="0" alpha="1">
   <layer class="SimpleFill" pass="0" enabled="1" locked="0">
    <prop k="border_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <prop k="color" v="255,255,255,255"/>
    <prop k="joinstyle" v="miter"/>
    <prop k="offset" v="0,0"/>
    <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <prop k="offset_unit" v="MM"/>
    <prop k="outline_color" v="35,35,35,255"/>
    <prop k="outline_style" v="no"/>
    <prop k="outline_width" v="0.26"/>
    <prop k="outline_width_unit" v="MM"/>
    <prop k="style" v="solid"/>
    <data_defined_properties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </data_defined_properties>
   </layer>
  </symbol>
  <LayoutItem templateUuid="{72530018-3d33-4843-b661-79580c9b15e3}" frame="false" groupUuid="" itemRotation="0" visibility="1" excludeFromExports="0" size="297,210,mm" position="0,0,mm" outlineWidthM="0.3,mm" background="true" referencePoint="0" positionOnPage="0,0,mm" type="65638" uuid="{72530018-3d33-4843-b661-79580c9b15e3}" id="" frameJoinStyle="miter" positionLock="false" blendMode="0" zValue="0" opacity="1">
   <FrameColor blue="0" green="0" red="0" alpha="255"/>
   <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
   <LayoutObject>
    <dataDefinedProperties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </dataDefinedProperties>
    <customproperties/>
   </LayoutObject>
   <symbol clip_to_extent="1" type="fill" name="" force_rhr="0" alpha="1">
    <layer class="SimpleFill" pass="0" enabled="1" locked="0">
     <prop k="border_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
     <prop k="color" v="255,255,255,255"/>
     <prop k="joinstyle" v="miter"/>
     <prop k="offset" v="0,0"/>
     <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
     <prop k="offset_unit" v="MM"/>
     <prop k="outline_color" v="35,35,35,255"/>
     <prop k="outline_style" v="no"/>
     <prop k="outline_width" v="0.26"/>
     <prop k="outline_width_unit" v="MM"/>
     <prop k="style" v="solid"/>
     <data_defined_properties>
      <Option type="Map">
       <Option value="" type="QString" name="name"/>
       <Option name="properties"/>
       <Option value="collection" type="QString" name="type"/>
      </Option>
     </data_defined_properties>
    </layer>
   </symbol>
  </LayoutItem>
  <GuideCollection visible="1"/>
 </PageCollection>
 <LayoutItem templateUuid="{6a1655ac-d65f-4163-9e89-5f98536a0c31}" frame="false" northMode="0" file=":/images/north_arrows/layout_default_north_arrow.svg" mode="0" groupUuid="" itemRotation="0" svgBorderWidth="0.2" visibility="1" excludeFromExports="0" size="10.4237,11.1743,mm" position="278.938,4.42978,mm" outlineWidthM="0.3,mm" background="false" anchorPoint="0" pictureRotation="0" referencePoint="0" positionOnPage="278.938,4.42978,mm" type="65640" resizeMode="0" uuid="{6a1655ac-d65f-4163-9e89-5f98536a0c31}" id="指北针" pictureWidth="8.85237" mapUuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" northOffset="0" pictureHeight="11.1743" svgFillColor="255,255,255,255" frameJoinStyle="miter" positionLock="true" blendMode="0" svgBorderColor="0,0,0,255" zValue="8" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
 </LayoutItem>
 <LayoutItem templateUuid="{13528ba9-5ea4-45e3-b56e-a975eb046d54}" frame="false" marginY="0" groupUuid="" itemRotation="0" halign="4" visibility="1" excludeFromExports="0" size="76.0244,8.6585,mm" position="213.337,195.989,mm" outlineWidthM="0.3,mm" background="false" referencePoint="0" positionOnPage="213.337,195.989,mm" type="65641" uuid="{13528ba9-5ea4-45e3-b56e-a975eb046d54}" id="公司" htmlState="0" frameJoinStyle="miter" positionLock="true" labelText="月球大数据地理空间分析展示平台" valign="128" blendMode="0" zValue="8" marginX="0" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
  <LabelFont description="宋体,14,-1,5,50,0,0,0,0,0,常规" style="常规"/>
  <FontColor blue="0" green="0" red="0" alpha="255"/>
 </LayoutItem>
 <LayoutItem templateUuid="{a53c1ba6-77af-48ea-bd86-8e12ae041979}" frame="false" northMode="0" file="" mode="0" groupUuid="" itemRotation="0" svgBorderWidth="0.2" visibility="0" excludeFromExports="0" size="43.6229,72.286,mm" position="11.7,117,mm" outlineWidthM="0.3,mm" background="false" anchorPoint="0" pictureRotation="0" referencePoint="0" positionOnPage="11.7,117,mm" type="65640" resizeMode="1" uuid="{a53c1ba6-77af-48ea-bd86-8e12ae041979}" id="图例" pictureWidth="43.6229" mapUuid="" northOffset="0" pictureHeight="72.286" svgFillColor="255,255,255,255" frameJoinStyle="miter" positionLock="false" blendMode="0" svgBorderColor="0,0,0,255" zValue="8" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
 </LayoutItem>
 <LayoutItem templateUuid="{29298722-a58a-42f7-85d1-04564ad9366d}" frame="false" northMode="0" file="{sourcesPath}\logo.png" mode="1" groupUuid="" itemRotation="0" svgBorderWidth="0.2" visibility="1" excludeFromExports="0" size="11.6809,10.7409,mm" position="200.5,194.948,mm" outlineWidthM="0.3,mm" background="false" anchorPoint="0" pictureRotation="0" referencePoint="0" positionOnPage="200.5,194.948,mm" type="65640" resizeMode="0" uuid="{29298722-a58a-42f7-85d1-04564ad9366d}" id="Logo" pictureWidth="10.7409" mapUuid="" northOffset="0" pictureHeight="10.7409" svgFillColor="255,255,255,255" frameJoinStyle="miter" positionLock="true" blendMode="0" svgBorderColor="0,0,0,255" zValue="7" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
 </LayoutItem>
 <LayoutItem templateUuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" frame="false" sectionX="0" groupUuid="" itemRotation="0" sectionWidth="39.6466" visibility="1" excludeFromExports="0" multiFrame="{3f590e9a-19b4-46d3-90bb-6a188b24aaa6}" size="39.6466,5.739,mm" position="247,183.864,mm" hideBackgroundIfEmpty="0" outlineWidthM="0.3,mm" sectionY="0" background="false" referencePoint="0" hidePageIfEmpty="0" positionOnPage="247,183.864,mm" type="65647" uuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" sectionHeight="5.739" id="说明" frameJoinStyle="miter" positionLock="false" multiFrameTemplateUuid="{3f590e9a-19b4-46d3-90bb-6a188b24aaa6}" blendMode="0" zValue="6" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
 </LayoutItem>
 <LayoutItem templateUuid="{81ccb104-2767-491d-8296-cd4ccbebed3e}" frame="false" marginY="0" groupUuid="" itemRotation="0" halign="4" visibility="1" excludeFromExports="0" size="165.122,11.1743,mm" position="68.2935,4.42978,mm" outlineWidthM="0.3,mm" background="false" referencePoint="0" positionOnPage="68.2935,4.42978,mm" type="65641" uuid="{81ccb104-2767-491d-8296-cd4ccbebed3e}" id="标题" htmlState="0" frameJoinStyle="miter" positionLock="true" labelText="{title}" valign="128" blendMode="0" zValue="4" marginX="0" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
  <LabelFont description="微软雅黑,24,-1,5,75,0,0,0,0,0,Bold" style="Bold"/>
  <FontColor blue="0" green="0" red="0" alpha="255"/>
 </LayoutItem>
 <LayoutItem templateUuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" frame="true" keepLayerSet="false" groupUuid="" itemRotation="0" visibility="1" excludeFromExports="0" size="280,174,mm" position="9,18,mm" outlineWidthM="4,px" background="true" drawCanvasItems="true" mapRotation="{rotation}" referencePoint="0" followPresetName="" positionOnPage="9,18,mm" type="65639" uuid="{4e649c5d-cabe-431f-a385-d69809d87ebf}" id="地图" mapFlags="0" frameJoinStyle="round" positionLock="true" blendMode="0" isTemporal="0" zValue="2" labelMargin="0,mm" followPreset="false" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </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 gridFrameSideFlags="15" rotatedTicksEnabled="1" rightAnnotationDisplay="0" intervalX="15" offsetX="0" rotatedTicksLengthMode="0" show="0" position="3" topAnnotationDisplay="0" gridFrameWidth="1" gridStyle="3" rightFrameDivisions="0" crossLength="3" bottomAnnotationDisplay="0" rightAnnotationPosition="1" maximumIntervalWidth="10" annotationExpression="" unit="1" minimumIntervalWidth="12" rotatedAnnotationsMarginToCorner="0" gridFrameMargin="0" leftAnnotationPosition="1" annotationPrecision="3" rotatedTicksMarginToCorner="0" leftAnnotationDisplay="0" bottomAnnotationPosition="1" gridFramePenThickness="0.5" bottomAnnotationDirection="0" rotatedTicksMinimumAngle="0" topAnnotationPosition="1" name="网格" offsetY="5" frameFillColor1="255,255,255,255" uuid="{33b582a6-ae09-42c2-b50b-ae68c9d6d71a}" topFrameDivisions="0" showAnnotation="1" frameAnnotationDistance="0.5" gridFrameStyle="3" rotatedAnnotationsEnabled="1" rotatedAnnotationsLengthMode="0" frameFillColor2="0,0,0,255" rotatedAnnotationsMinimumAngle="0" topAnnotationDirection="0" annotationFormat="0" leftFrameDivisions="0" rightAnnotationDirection="2" leftAnnotationDirection="2" blendMode="0" gridFramePenColor="0,0,0,255" bottomFrameDivisions="0" intervalY="15">
   <lineStyle>
    <symbol clip_to_extent="1" type="line" name="" force_rhr="0" alpha="0.616">
     <layer class="SimpleLine" pass="0" enabled="1" locked="0">
      <prop k="align_dash_pattern" v="0"/>
      <prop k="capstyle" v="round"/>
      <prop k="customdash" v="0.66;2"/>
      <prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="customdash_unit" v="MM"/>
      <prop k="dash_pattern_offset" v="0"/>
      <prop k="dash_pattern_offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="dash_pattern_offset_unit" v="MM"/>
      <prop k="draw_inside_polygon" v="0"/>
      <prop k="joinstyle" v="round"/>
      <prop k="line_color" v="0,0,0,255"/>
      <prop k="line_style" v="solid"/>
      <prop k="line_width" v="0.5"/>
      <prop k="line_width_unit" v="MM"/>
      <prop k="offset" v="0"/>
      <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="offset_unit" v="MM"/>
      <prop k="ring_filter" v="0"/>
      <prop k="tweak_dash_pattern_on_corners" v="0"/>
      <prop k="use_custom_dash" v="1"/>
      <prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <data_defined_properties>
       <Option type="Map">
        <Option value="" type="QString" name="name"/>
        <Option name="properties"/>
        <Option value="collection" type="QString" name="type"/>
       </Option>
      </data_defined_properties>
     </layer>
    </symbol>
   </lineStyle>
   <markerStyle>
    <symbol clip_to_extent="1" type="marker" name="" force_rhr="0" alpha="1">
     <layer class="SimpleMarker" pass="0" enabled="1" locked="0">
      <prop k="angle" v="0"/>
      <prop k="color" v="0,0,0,255"/>
      <prop k="horizontal_anchor_point" v="1"/>
      <prop k="joinstyle" v="bevel"/>
      <prop k="name" v="circle"/>
      <prop k="offset" v="0,0"/>
      <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="offset_unit" v="MM"/>
      <prop k="outline_color" v="35,35,35,255"/>
      <prop k="outline_style" v="solid"/>
      <prop k="outline_width" v="0"/>
      <prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="outline_width_unit" v="MM"/>
      <prop k="scale_method" v="diameter"/>
      <prop k="size" v="2"/>
      <prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
      <prop k="size_unit" v="MM"/>
      <prop k="vertical_anchor_point" v="1"/>
      <data_defined_properties>
       <Option type="Map">
        <Option value="" type="QString" name="name"/>
        <Option name="properties"/>
        <Option value="collection" type="QString" name="type"/>
       </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 fontSize="8" namedStyle="" fontUnderline="0" multilineHeight="1" fontStrikeout="0" allowHtml="0" fontLetterSpacing="0" fontSizeUnit="Point" fontItalic="0" textOrientation="horizontal" capitalization="0" fontWeight="50" fontWordSpacing="0" previewBkgrdColor="255,255,255,255" fontKerning="1" fontFamily="SimSun" textColor="0,0,0,255" blendMode="0" textOpacity="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0">
    <text-buffer bufferDraw="0" bufferSize="1" bufferNoFill="1" bufferColor="255,255,255,255" bufferSizeUnits="MM" bufferOpacity="1" bufferJoinStyle="128" bufferBlendMode="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0"/>
    <text-mask maskType="0" maskEnabled="0" maskOpacity="1" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskSize="1.5" maskSizeUnits="MM" maskedSymbolLayers="" maskJoinStyle="128"/>
    <background shapeOffsetUnit="MM" shapeRotation="0" shapeSizeY="0" shapeOffsetY="0" shapeRadiiUnit="MM" shapeSizeX="0" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeJoinStyle="64" shapeDraw="0" shapeRotationType="0" shapeSizeUnit="MM" shapeRadiiX="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeOpacity="1" shapeOffsetX="0" shapeSVGFile="" shapeBorderWidth="0" shapeFillColor="255,255,255,255" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeSizeType="0" shapeBorderWidthUnit="MM" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeType="0" shapeBorderColor="128,128,128,255" shapeBlendMode="0">
     <symbol clip_to_extent="1" type="marker" name="markerSymbol" force_rhr="0" alpha="1">
      <layer class="SimpleMarker" pass="0" enabled="1" locked="0">
       <prop k="angle" v="0"/>
       <prop k="color" v="231,113,72,255"/>
       <prop k="horizontal_anchor_point" v="1"/>
       <prop k="joinstyle" v="bevel"/>
       <prop k="name" v="circle"/>
       <prop k="offset" v="0,0"/>
       <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
       <prop k="offset_unit" v="MM"/>
       <prop k="outline_color" v="35,35,35,255"/>
       <prop k="outline_style" v="solid"/>
       <prop k="outline_width" v="0"/>
       <prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
       <prop k="outline_width_unit" v="MM"/>
       <prop k="scale_method" v="diameter"/>
       <prop k="size" v="2"/>
       <prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
       <prop k="size_unit" v="MM"/>
       <prop k="vertical_anchor_point" v="1"/>
       <data_defined_properties>
        <Option type="Map">
         <Option value="" type="QString" name="name"/>
         <Option name="properties"/>
         <Option value="collection" type="QString" name="type"/>
        </Option>
       </data_defined_properties>
      </layer>
     </symbol>
    </background>
    <shadow shadowDraw="0" shadowScale="100" shadowColor="0,0,0,255" shadowRadiusAlphaOnly="0" shadowUnder="0" shadowRadius="1.5" shadowOffsetUnit="MM" shadowOffsetDist="1" shadowOffsetAngle="135" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusUnit="MM" shadowOffsetGlobal="1" shadowOpacity="0.7" shadowBlendMode="6"/>
    <dd_properties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </dd_properties>
   </text-style>
   <LayoutObject>
    <dataDefinedProperties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </dataDefinedProperties>
    <customproperties/>
   </LayoutObject>
  </ComposerMapGrid>
  <AtlasMap atlasDriven="0" margin="0.10000000000000001" scalingMode="2"/>
  <labelBlockingItems/>
  <atlasClippingSettings clippingType="1" forceLabelsInside="0" restrictLayers="0" enabled="0">
   <layersToClip/>
  </atlasClippingSettings>
  <itemClippingSettings clippingType="1" forceLabelsInside="0" enabled="0" clipSource=""/>
 </LayoutItem>
 <LayoutItem templateUuid="{76e708b9-4aa8-4365-b8ba-3157f836dfa9}" frame="false" groupUuid="" itemRotation="0" visibility="1" excludeFromExports="0" size="292.354,205.447,mm" position="2.6816,2,mm" outlineWidthM="0.3,mm" background="false" referencePoint="0" cornerRadiusMeasure="0,mm" positionOnPage="2.6816,2,mm" type="65643" uuid="{76e708b9-4aa8-4365-b8ba-3157f836dfa9}" id="边框" frameJoinStyle="miter" positionLock="true" blendMode="0" shapeType="1" zValue="1" opacity="1">
  <FrameColor blue="0" green="0" red="0" alpha="255"/>
  <BackgroundColor blue="255" green="255" red="255" alpha="255"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
  <symbol clip_to_extent="1" type="fill" name="" force_rhr="0" alpha="1">
   <layer class="SimpleLine" pass="0" enabled="1" locked="0">
    <prop k="align_dash_pattern" v="0"/>
    <prop k="capstyle" v="square"/>
    <prop k="customdash" v="5;2"/>
    <prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <prop k="customdash_unit" v="Pixel"/>
    <prop k="dash_pattern_offset" v="0"/>
    <prop k="dash_pattern_offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <prop k="dash_pattern_offset_unit" v="MM"/>
    <prop k="draw_inside_polygon" v="0"/>
    <prop k="joinstyle" v="bevel"/>
    <prop k="line_color" v="53,121,177,255"/>
    <prop k="line_style" v="solid"/>
    <prop k="line_width" v="0.96"/>
    <prop k="line_width_unit" v="Pixel"/>
    <prop k="offset" v="0"/>
    <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <prop k="offset_unit" v="Pixel"/>
    <prop k="ring_filter" v="0"/>
    <prop k="tweak_dash_pattern_on_corners" v="0"/>
    <prop k="use_custom_dash" v="0"/>
    <prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
    <data_defined_properties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </data_defined_properties>
   </layer>
  </symbol>
 </LayoutItem>
 <LayoutMultiFrame templateUuid="{3b12245e-8390-439c-bcc3-c9bbf6061b53}" emptyTableMode="0" emptyTableMessage="" verticalGrid="1" gridColor="0,0,0,255" horizontalGrid="1" gridStrokeWidth="0.5" headerMode="2" backgroundColor="255,255,255,255" cellMargin="1" wrapBehavior="0" type="65652" showGrid="0" resizeMode="0" uuid="{3b12245e-8390-439c-bcc3-c9bbf6061b53}" showEmptyRows="0" includeHeader="0" headerHAlignment="2">
  <childFrame templateUuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}" uuid="{7cb1fe59-d2d9-427d-a2d1-4edbc7285021}"/>
  <LayoutObject>
   <dataDefinedProperties>
    <Option type="Map">
     <Option value="" type="QString" name="name"/>
     <Option name="properties"/>
     <Option value="collection" type="QString" name="type"/>
    </Option>
   </dataDefinedProperties>
   <customproperties/>
  </LayoutObject>
  <headerTextFormat>
   <text-style fontSize="10" namedStyle="" fontUnderline="0" multilineHeight="1" fontStrikeout="0" allowHtml="0" fontLetterSpacing="0" fontSizeUnit="Point" fontItalic="0" textOrientation="horizontal" capitalization="0" fontWeight="50" fontWordSpacing="0" previewBkgrdColor="255,255,255,255" fontKerning="1" fontFamily="SimSun" textColor="0,0,0,255" blendMode="0" textOpacity="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0">
    <text-buffer bufferDraw="0" bufferSize="1" bufferNoFill="1" bufferColor="255,255,255,255" bufferSizeUnits="MM" bufferOpacity="1" bufferJoinStyle="128" bufferBlendMode="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0"/>
    <text-mask maskType="0" maskEnabled="0" maskOpacity="1" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskSize="1.5" maskSizeUnits="MM" maskedSymbolLayers="" maskJoinStyle="128"/>
    <background shapeOffsetUnit="MM" shapeRotation="0" shapeSizeY="0" shapeOffsetY="0" shapeRadiiUnit="MM" shapeSizeX="0" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeJoinStyle="64" shapeDraw="0" shapeRotationType="0" shapeSizeUnit="MM" shapeRadiiX="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeOpacity="1" shapeOffsetX="0" shapeSVGFile="" shapeBorderWidth="0" shapeFillColor="255,255,255,255" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeSizeType="0" shapeBorderWidthUnit="MM" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeType="0" shapeBorderColor="128,128,128,255" shapeBlendMode="0"/>
    <shadow shadowDraw="0" shadowScale="100" shadowColor="0,0,0,255" shadowRadiusAlphaOnly="0" shadowUnder="0" shadowRadius="1.5" shadowOffsetUnit="MM" shadowOffsetDist="1" shadowOffsetAngle="135" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusUnit="MM" shadowOffsetGlobal="1" shadowOpacity="0.7" shadowBlendMode="6"/>
    <dd_properties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </dd_properties>
   </text-style>
  </headerTextFormat>
  <contentTextFormat>
   <text-style fontSize="10" namedStyle="" fontUnderline="0" multilineHeight="1" fontStrikeout="0" allowHtml="0" fontLetterSpacing="0" fontSizeUnit="Point" fontItalic="0" textOrientation="horizontal" capitalization="0" fontWeight="50" fontWordSpacing="0" previewBkgrdColor="255,255,255,255" fontKerning="1" fontFamily="SimSun" textColor="0,0,0,255" blendMode="0" textOpacity="1" fontSizeMapUnitScale="3x:0,0,0,0,0,0">
    <text-buffer bufferDraw="0" bufferSize="1" bufferNoFill="1" bufferColor="255,255,255,255" bufferSizeUnits="MM" bufferOpacity="1" bufferJoinStyle="128" bufferBlendMode="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0"/>
    <text-mask maskType="0" maskEnabled="0" maskOpacity="1" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskSize="1.5" maskSizeUnits="MM" maskedSymbolLayers="" maskJoinStyle="128"/>
    <background shapeOffsetUnit="MM" shapeRotation="0" shapeSizeY="0" shapeOffsetY="0" shapeRadiiUnit="MM" shapeSizeX="0" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeJoinStyle="64" shapeDraw="0" shapeRotationType="0" shapeSizeUnit="MM" shapeRadiiX="0" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiY="0" shapeOpacity="1" shapeOffsetX="0" shapeSVGFile="" shapeBorderWidth="0" shapeFillColor="255,255,255,255" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeSizeType="0" shapeBorderWidthUnit="MM" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeType="0" shapeBorderColor="128,128,128,255" shapeBlendMode="0"/>
    <shadow shadowDraw="0" shadowScale="100" shadowColor="0,0,0,255" shadowRadiusAlphaOnly="0" shadowUnder="0" shadowRadius="1.5" shadowOffsetUnit="MM" shadowOffsetDist="1" shadowOffsetAngle="135" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowRadiusUnit="MM" shadowOffsetGlobal="1" shadowOpacity="0.7" shadowBlendMode="6"/>
    <dd_properties>
     <Option type="Map">
      <Option value="" type="QString" name="name"/>
      <Option name="properties"/>
      <Option value="collection" type="QString" name="type"/>
     </Option>
    </dd_properties>
   </text-style>
  </contentTextFormat>
  <displayColumns>
   <column width="0" heading="" sortByRank="0" sortOrder="0" vAlignment="128" attribute="" hAlignment="1">
    <backgroundColor blue="0" green="0" red="0" alpha="0"/>
   </column>
   <column width="0" heading="说明" sortByRank="0" sortOrder="0" vAlignment="128" attribute="" hAlignment="1">
    <backgroundColor blue="0" green="0" red="0" alpha="0"/>
   </column>
  </displayColumns>
  <sortColumns/>
  <cellStyles>
   <oddColumns enabled="0" cellBackgroundColor="255,255,255,255"/>
   <evenColumns enabled="0" cellBackgroundColor="255,255,255,255"/>
   <oddRows enabled="0" cellBackgroundColor="255,255,255,255"/>
   <evenRows enabled="0" cellBackgroundColor="255,255,255,255"/>
   <firstColumn enabled="0" cellBackgroundColor="255,255,255,255"/>
   <lastColumn enabled="0" cellBackgroundColor="255,255,255,255"/>
   <headerRow enabled="0" cellBackgroundColor="255,255,255,255"/>
   <firstRow enabled="0" cellBackgroundColor="255,255,255,255"/>
   <lastRow enabled="0" cellBackgroundColor="255,255,255,255"/>
  </cellStyles>
  <headers>
   <header width="0" heading="" sortByRank="0" sortOrder="0" vAlignment="128" attribute="" hAlignment="1">
    <backgroundColor blue="0" green="0" red="0" alpha="0"/>
   </header>
   <header width="0" heading="说明" sortByRank="0" sortOrder="0" vAlignment="128" attribute="" hAlignment="1">
    <backgroundColor blue="0" green="0" red="0" alpha="0"/>
   </header>
  </headers>
  <contents>
   <row>
    <Option type="Map">
     <Option value="" type="color" name="background"/>
     <Option value="制图时间:" type="QString" name="content"/>
     <Option value="" type="color" name="foreground"/>
     <Option value="2" type="int" name="halign"/>
     <Option value="32" type="int" name="valign"/>
    </Option>
    <Option type="Map">
     <Option value="" type="color" name="background"/>
     <Option value="{date}" type="QString" name="content"/>
     <Option value="" type="color" name="foreground"/>
     <Option value="1" type="int" name="halign"/>
     <Option value="32" type="int" name="valign"/>
    </Option>
   </row>
  </contents>
  <rowHeights>
   <row height="0"/>
  </rowHeights>
  <columnWidths>
   <column width="0"/>
   <column width="0"/>
  </columnWidths>
 </LayoutMultiFrame>
 <customproperties>
  <property value="png" key="atlasRasterFormat"/>
  <property value="true" key="imageAntialias"/>
  <property value="0" key="imageCropMarginBottom"/>
  <property value="0" key="imageCropMarginLeft"/>
  <property value="0" key="imageCropMarginRight"/>
  <property value="0" key="imageCropMarginTop"/>
  <property value="false" key="imageCropToContents"/>
  <property value="true" key="singleFile"/>
  <property key="layers" value="{layers}"/>
  <property key="imgPath" value="{imgPath}"/>
 </customproperties>
 <Atlas filenamePattern="'output_'||@atlas_featurenumber" filterFeatures="0" enabled="0" coverageLayer="" sortFeatures="0" hideCoverage="0" pageNameExpression=""/>
</Layout>
MoonExp/cs/ExportUtil.cs
@@ -132,7 +132,7 @@
        {
            string date = DateStr;
            string sub = GetExportSubFolder();
            string qgz = "Test.qgz";
            string qgz = "Moon.qgz";
            args.imgPath = sub + "\\" + date + ".png";
            args.qpt = date + ".qpt";
@@ -174,7 +174,7 @@
        public static void CreateTemplate(ExportArgs args)
        {
            string imgPath = Path.Combine(DownloadFolder, args.imgPath);
            string templateFile = Path.Combine(SourcesPath, "Template.qpt");
            string templateFile = Path.Combine(SourcesPath, "MoonTemplate.qpt");
            string qptFile = Path.Combine(SourcesPath, args.qpt);
            LogOut.Info("imgPath = " + imgPath + ", tempFile = " + templateFile + ", qptFile = " + qptFile);
@@ -188,9 +188,9 @@
                .Replace("{ymin}", args.ymin.ToString())
                .Replace("{ymax}", args.ymax.ToString())
                .Replace("{xmax}", args.xmax.ToString())
                .Replace("{province}", args.province)
                //.Replace("{province}", args.province)
                .Replace("{scale}", args.scale)
                .Replace("{resolution}", args.resolution)
                //.Replace("{resolution}", args.resolution)
                //.Replace("{date}", args.date)
                .Replace("{date}", DateTime.Now.ToString("yyyy.MM.dd"))
                .Replace("{layers}", args.layers)