zhanghao 1 місяць тому
батько
коміт
6398f33f44

BIN
src/assets/zhang/myMap/bg.png


+ 1 - 1
src/views/pad/map/map.vue

@@ -11,7 +11,7 @@
       v-if="showBack"
       @click="beBack(sign)"
       src="@/assets/images/main/back.png"
-      style="width: 34px;height: 30px;cursor: pointer;position: absolute;right: 50px;bottom: 50px;"
+      style="width: 34px;height: 30px;cursor: pointer;position: absolute;right: 50px;bottom: 80px;"
     />
   </div>
 </template>

+ 23 - 23
src/views/pad/map/mapTwo.vue

@@ -11,7 +11,7 @@
       v-if="showBack"
       @click="beBack"
       src="@/assets/images/main/back.png"
-      style="width: 34px;height: 30px;cursor: pointer;position: absolute;right: 50px;bottom: 50px;"
+      style="width: 34px;height: 30px;cursor: pointer;position: absolute;right: 50px;bottom: 80px;"
     />
   </div>
 </template>
@@ -54,17 +54,17 @@ export default {
         晋城市: 晋城市,
       },
       points:[
-        { name: "太原市", coordinate: [111.6993, 38.0570], appOrg: "1A003", x: "0", y: "2" },
-        { name: "大同市", coordinate: [113.3002, 40.0768], appOrg: "1B001", x: "0", y: "2" },
-        { name: "阳泉市", coordinate: [113.6805, 37.7863], appOrg: "1C001", x: "0", y: "2" },
-        { name: "长治市", coordinate: [113.1163, 36.1954], appOrg: "1D001", x: "0", y: "2" },
-        { name: "晋城市", coordinate: [113.1513, 35.5907], appOrg: "1E001", x: "0", y: "2" },
-        { name: "朔州市", coordinate: [112.4329, 39.5312], appOrg: "1F001", x: "0", y: "2" },
-        { name: "晋中市", coordinate: [113.2527, 37.3870], appOrg: "1K001", x: "0", y: "2" },
-        { name: "临汾市", coordinate: [111.5186, 35.8582], appOrg: "1L001", x: "0", y: "2" },
-        { name: "忻州市", coordinate: [112.7341, 38.6167], appOrg: "1H001", x: "0", y: "2" },
-        { name: "运城市", coordinate: [110.9069, 34.9264], appOrg: "1M001", x: "0", y: "2" },
-        { name: "吕梁市", coordinate: [111.1443, 37.4183], appOrg: "1J001", x: "0", y: "2" }
+        { name: "太原市", coordinate: [111.9393, 38.0070], appOrg: "1A003", x: "0", y: "2" },
+        { name: "大同市", coordinate: [113.72499, 39.904541], appOrg: "1B001", x: "0", y: "2" },
+        { name: "阳泉市", coordinate: [113.505474, 38.064652], appOrg: "1C001", x: "0", y: "2" },
+        { name: "长治市", coordinate: [113.121277, 36.478022], appOrg: "1D001", x: "0", y: "2" },
+        { name: "晋城市", coordinate: [112.783186, 35.610944], appOrg: "1E001", x: "0", y: "2" },
+        { name: "朔州市", coordinate: [112.388197, 39.579375], appOrg: "1F001", x: "0", y: "2" },
+        { name: "晋中市", coordinate: [113.259398, 37.329161], appOrg: "1K001", x: "0", y: "2" },
+        { name: "临汾市", coordinate: [111.491988, 36.228828], appOrg: "1L001", x: "0", y: "2" },
+        { name: "忻州市", coordinate: [112.664867, 38.685126], appOrg: "1H001", x: "0", y: "2" },
+        { name: "运城市", coordinate: [110.920718, 35.188073], appOrg: "1M001", x: "0", y: "2" },
+        { name: "吕梁市", coordinate: [111.268548, 37.684104], appOrg: "1J001", x: "0", y: "2" }
       ]
     }
   },
@@ -167,19 +167,19 @@ export default {
           {
             type: "scatter", // 散点图(用于标注特殊位置)
             coordinateSystem: "geo", // 使用 `geo` 作为坐标系
-            symbol: "image://" + require("@/assets/zhang/myMap/carPosition.png"), // 自定义标记(图片)
-            symbolSize: [30, 55], // 标记大小(宽 30,高 20)
+            symbol: "image://" + require("@/assets/zhang/myMap/circle.png"), // 自定义标记(图片)
+            symbolSize: [65, 65], // 标记大小(宽 30,高 20)
             label: {
               show: true, // 显示数字
-              position: "right", // 数字显示在图标的正上方
+              position: "inside", // 数字显示在图标的正上方
               color: "#fff", // 文字颜色(白色)
-              fontSize: 14, // 字体大小
-              fontWeight: "bold", // 加粗
-              backgroundColor: "rgba(75,117,117,0.59)", // 文字背景色(可选)
-              borderColor: "rgba(56,236,250)", // 边框颜色
-              borderWidth: 1,
-              padding: [6, 7], // 文字内边距(可选)
-              borderRadius: 2, // 文字框圆角(可选)
+              fontSize: 18, // 字体大小
+              fontWeight: "500", // 加粗
+              // backgroundColor: "rgba(75,117,117,0.59)", // 文字背景色(可选)
+              // borderColor: "rgba(56,236,250)", // 边框颜色
+              // borderWidth: 1,
+              // padding: [6, 7], // 文字内边距(可选)
+              // borderRadius: 2, // 文字框圆角(可选)
             },
             data: this.points.map(({ name, coordinate, appOrg, x, y }) => ({
               name, // 点名称
@@ -195,7 +195,7 @@ export default {
             type: "scatter", // 散点图(用于标注特殊位置)
             coordinateSystem: "geo", // 使用 `geo` 作为坐标系
             name: "center",
-            symbol: "image://" + require("@/assets/images/build_icon.png"),
+            symbol: "image://" + require("@/assets/zhang/myMap/building.png"),
             symbolSize: 40, // 标记的大小
             data: [{
               name: "山西省公司(本部)",

+ 10 - 2
src/views/pad/map/shanxi.json

@@ -217,7 +217,8 @@
       "properties": {
         "adcode": 140200,
         "name": "大同市",
-        "center": [113.295259, 40.09031],
+        "cp": [114.1502, 39.5768],
+        "center": [113.9502, 39.2768],
         "centroid": [113.72499, 39.904541],
         "childrenNum": 10,
         "level": "city",
@@ -497,6 +498,7 @@
       "properties": {
         "adcode": 140300,
         "name": "阳泉市",
+        "cp": [114.083285, 37.861188],
         "center": [113.583285, 37.861188],
         "centroid": [113.505474, 38.064652],
         "childrenNum": 5,
@@ -641,6 +643,7 @@
       "properties": {
         "adcode": 140400,
         "name": "长治市",
+        "cp": [112.6163, 36.5254],
         "center": [113.113556, 36.191112],
         "centroid": [112.921277, 36.478022],
         "childrenNum": 12,
@@ -881,6 +884,7 @@
       "properties": {
         "adcode": 140500,
         "name": "晋城市",
+        "cp": [112.3113, 35.4607],
         "center": [112.851274, 35.497553],
         "centroid": [112.713186, 35.610944],
         "childrenNum": 6,
@@ -1067,7 +1071,7 @@
       "properties": {
         "adcode": 140600,
         "name": "朔州市",
-        "cp": [112.433467, 39.370208],
+        "cp": [112.863467, 39.460208],
         "center": [112.433387, 39.331261],
         "centroid": [112.648197, 39.619375],
         "childrenNum": 6,
@@ -1609,6 +1613,7 @@
       "properties": {
         "adcode": 140800,
         "name": "运城市",
+        "cp": [111.3957, 35.032778],
         "center": [111.003957, 35.022778],
         "centroid": [111.070718, 35.188073],
         "childrenNum": 13,
@@ -1826,6 +1831,7 @@
       "properties": {
         "adcode": 140900,
         "name": "忻州市",
+        "cp": [112.133538, 38.71769],
         "center": [112.733538, 38.41769],
         "centroid": [112.414867, 38.885126],
         "childrenNum": 14,
@@ -2168,6 +2174,7 @@
       "properties": {
         "adcode": 141000,
         "name": "临汾市",
+        "cp": [111.007973, 36.08415],
         "center": [111.517973, 36.08415],
         "centroid": [111.381988, 36.228828],
         "childrenNum": 17,
@@ -2477,6 +2484,7 @@
       "properties": {
         "adcode": 141100,
         "name": "吕梁市",
+        "cp": [111.1443, 37.1183],
         "center": [111.134335, 37.524366],
         "centroid": [111.268548, 37.684104],
         "childrenNum": 13,

+ 78 - 2
src/views/screen/engineering/issueSubDia.vue

@@ -43,7 +43,7 @@
 
         <div style="width: 130px;height: 130px;background: rgba(15, 86, 86, 0.54);margin-bottom: 10px;mborder-radius: 4px;color: #00ffff;position: relative;font-size: 45px;display: flex;align-items: center">
           <i v-if="!fileFlag" class="el-icon-plus" style="position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);"></i>
-          <input v-if="!fileFlag" type="file" ref="fileInput" @change="handleFileChange" style="display: none;position: absolute;left: -1000px"/>
+          <input v-if="!fileFlag" type="file" ref="fileInput" accept=".png, .jpg" @change="handleFileChange" style="display: none;position: absolute;left: -1000px"/>
           <div v-if="!fileFlag" @click="triggerFileInput" style="width: 100%;height: 100%;cursor: pointer;position: absolute;"></div>
           <div class="sth" v-if="fileFlag">
             <div style="width: 0;height: 0;border-left: 30px solid transparent;border-top: 30px solid #000000;position: absolute;top: 0;right: 0">
@@ -60,6 +60,9 @@
         </div>
         <el-button style="width: 100px;margin-top: 10px;margin-right: 10px;border: 1px solid #00FFFF;border-radius: 2px;" @click="add">提交</el-button>
         <el-button style="width: 100px;margin-top: 10px;background: rgba(15, 86, 86, 0.54);color: #00ffff;border: 1px solid #00FFFF;border-radius: 2px;" @click="close">取消</el-button>
+        <el-button style="width: 100px;margin-top: 10px;background: rgba(15, 86, 86, 0.54);color: #00ffff;border: 1px solid #00FFFF;border-radius: 2px;">取消</el-button>
+
+        <button @click="generateWord" v-show="true">生成Word文件</button>
       </div>
     </div>
   </div>
@@ -72,6 +75,14 @@ import pinyin from "../data/pinyin.js";
 export default {
   name: "IssueSubDia",
   props: {
+    constructionUnit:{
+      type: String,
+      default: ''
+    },
+    supervisionUnit:{
+      type: String,
+      default: ''
+    },
     projectId:{
       type: Number,
       default: null
@@ -83,6 +94,7 @@ export default {
   },
   data() {
     return {
+      imageSrc: null,
       file:null,
       title:'',
       person:null,
@@ -102,6 +114,65 @@ export default {
     this.dialogImageUrl = this.imgUrl
 },
   methods: {
+    loadTemplate() {
+      return fetch("/template.docx")
+        .then(response => response.arrayBuffer())
+        .then(buffer => {
+          return buffer;
+        });
+    },
+
+    generateWord() {
+      this.loadTemplate()
+        .then((buffer) => {
+          const imageOptions = {
+            centered: false,
+            getImage: (tagValue) => this.base64ToArrayBuffer(tagValue),
+            getSize: () => [150, 100],
+          };
+          const today = new Date();
+          const formattedDate = `${today.getFullYear()}.${today.getMonth() + 1}.${today.getDate()}`;
+          // 加载 Word 模板和图片插件模块
+          const zip = new PizZip(buffer);
+          const doc = new Docxtemplater(zip, { modules: [new ImageModule(imageOptions)] });
+
+          // 设置填充模板的数据
+          const templateData = {
+            createTime: formattedDate,
+            projectName: "项目1",
+            constructionUnit: this.constructionUnit,
+            supervisionUnit: this.supervisionUnit,
+            description: "好好干",
+            need: "日子甜",
+            image: this.imageSrc,
+          };
+
+          doc.setData(templateData);
+
+          try {
+            doc.render();
+            const out = doc.getZip().generate({ type: "blob" });
+            saveAs(out, "generated-file.docx");
+            console.log("Word文档已生成并下载!");
+          } catch (error) {
+            console.error("生成 Word 文件时出错:", error);
+          }
+        })
+        .catch((error) => {
+          console.error("加载模板文件时出错:", error);
+        });
+    },
+
+    base64ToArrayBuffer(base64) {
+      const binaryString = atob(base64.split(",")[1]);
+      const len = binaryString.length;
+      const bytes = new Uint8Array(len);
+      for (let i = 0; i < len; i++) {
+        bytes[i] = binaryString.charCodeAt(i);
+      }
+      return bytes.buffer;
+    },
+
     triggerFileInput(){
       this.$refs.fileInput.click();
     },
@@ -138,7 +209,12 @@ export default {
         this.file = file
         this.fileFlag = true
         this.dialogImageUrl = URL.createObjectURL(file)
-
+        const reader = new FileReader();
+        reader.onload = (e) => {
+          const base64String = e.target.result;
+          this.imageSrc = base64String;
+        };
+        reader.readAsDataURL(file);
       }
     },
     handleRemove() {

+ 7 - 1
src/views/screen/engineering/main.vue

@@ -159,6 +159,8 @@
         <issue-sub-dia
           v-if="showIssueSub === 1"
           @close="onCloseIssueSub"
+          :constructionUnit="constructionUnit"
+          :supervisionUnit="supervisionUnit"
           :monitorInfo="this.monitorInfo"
           :projectId="curCompanMonth"
           :imgUrl="this.imgUrl">
@@ -253,6 +255,8 @@ export default {
   props: {},
   data() {
     return {
+      supervisionUnit: null,
+      constructionUnit: null,
       menuFlag: true,
       appOrg: "0000",
       num: 0,
@@ -499,7 +503,9 @@ export default {
     },
 
     onChooseProject(e){
-      this.curCompanMonth = e;
+      this.curCompanMonth = e.id;
+      this.constructionUnit = e.constructionUnit
+      this.supervisionUnit = e.supervisionUnit
       this.showC = false
       this.showCenter = true;
       this.showType = 2;

+ 6 - 6
src/views/screen/engineering/monitorLive.vue

@@ -187,12 +187,12 @@ export default {
     shot() {
       console.log(this.videoObj,'========================aaa');
       console.log("视频播放编号", this.code);
-      if (!this.videoObj)
-       return;
-      this.videoObj.capture({
-        winNum: this.winNum,
-        code: this.monitorInfo.cameraCode,
-      });
+      // if (!this.videoObj)
+      //  return;
+      // this.videoObj.capture({
+      //   winNum: this.winNum,
+      //   code: this.monitorInfo.cameraCode,
+      // });
       this.imgSrc=this.fileName
       this.issue(this.imgSrc)
 

+ 5 - 5
src/views/screen/engineering/unitProjectDia.vue

@@ -8,7 +8,7 @@
         <div class="firY">摄像头数量</div>
       </div>
       <div class="dataList">
-        <div class="flex-row" v-for="(item,index) in dataList" :key="index" @click="choose(item.id)">
+        <div class="flex-row" v-for="(item,index) in dataList" :key="index" @click="choose(item)">
           <div class="groX">{{item.projectName}}</div>
           <div class="groY">{{item.cameraNum}}</div>
         </div>
@@ -47,8 +47,8 @@ export default {
   },
   mounted() {},
   methods: {
-    choose(appOrg){
-      this.$emit("choose",appOrg);
+    choose(project){
+      this.$emit("choose",project);
     },
     etCameraNumList(){
       etCameraNumList(this.$props.curCompanyear).then((res) => {
@@ -107,7 +107,7 @@ export default {
   text-align: left;  /* 左对齐文本 */
   color: white;
   }
-  .firY{ 
+  .firY{
    padding: 8px 12px;
   text-align: left;  /* 左对齐文本 */
   color: white;
@@ -139,7 +139,7 @@ export default {
   text-align: left;  /* 左对齐文本 */
   color: white;
   }
-  .groY{ 
+  .groY{
    padding: 8px 12px;
   text-align: left;  /* 左对齐文本 */
   color: white;

+ 30 - 25
src/views/screen/map/map.vue

@@ -13,6 +13,16 @@
       src="@/assets/images/main/back.png"
       style="width: 34px;height: 30px;cursor: pointer;position: absolute;right: 50px;bottom: 50px;"
     />
+    <div style="position: absolute;right: 20px;bottom: 200px;color: white;user-select: none" v-if="!showBack">
+      <div style="display: flex;align-items: center;justify-content: center;flex-wrap: wrap;width: 46px;margin-bottom: 20px">
+        <img src="@/assets/zhang/myMap/blue.png">
+        <div>在建</div>
+      </div>
+      <div style="display: flex;align-items: center;justify-content: center;flex-wrap: wrap;width: 46px">
+        <img src="@/assets/zhang/myMap/orange.png">
+        <div>施工</div>
+      </div>
+    </div>
   </div>
 </template>
 
@@ -189,17 +199,17 @@ export default {
         { name: "吕梁市", appOrg: "1J001" }
       ],
       points: [
-        { name: "太原市", coordinate: [111.8493, 37.9570], appOrg: "1A003", x: "1", y: "2" },
-        { name: "大同市", coordinate: [113.3002, 40.0768], appOrg: "1B001", x: "1", y: "2" },
-        { name: "阳泉市", coordinate: [113.3805, 38.3563], appOrg: "1C001", x: "1", y: "2" },
-        { name: "长治市", coordinate: [113.1163, 36.6254], appOrg: "1D001", x: "1", y: "2" },
-        { name: "晋城市", coordinate: [112.2113, 35.4007], appOrg: "1E001", x: "1", y: "2" },
-        { name: "朔州市", coordinate: [112.4329, 39.6312], appOrg: "1F001", x: "1", y: "2" },
+        { name: "太原市", coordinate: [111.9393, 37.9570], appOrg: "1A003", x: "1", y: "2" },
+        { name: "大同市", coordinate: [113.6802, 39.5768], appOrg: "1B001", x: "1", y: "2" },
+        { name: "阳泉市", coordinate: [113.583285, 37.861188], appOrg: "1C001", x: "1", y: "2" },
+        { name: "长治市", coordinate: [113.113556, 36.191112], appOrg: "1D001", x: "1", y: "2" },
+        { name: "晋城市", coordinate: [112.851274, 35.497553], appOrg: "1E001", x: "1", y: "2" },
+        { name: "朔州市", coordinate: [112.4029, 39.3812], appOrg: "1F001", x: "1", y: "2" },
         { name: "晋中市", coordinate: [113.3827, 37.1870], appOrg: "1K001", x: "1", y: "2" },
-        { name: "临汾市", coordinate: [111.1286, 36.2582], appOrg: "1L001", x: "1", y: "2" },
-        { name: "忻州市", coordinate: [111.7341, 38.7167], appOrg: "1H001", x: "1", y: "2" },
-        { name: "运城市", coordinate: [111.0069, 35.4264], appOrg: "1M001", x: "1", y: "2" },
-        { name: "吕梁市", coordinate: [111.1443, 37.1183], appOrg: "1J001", x: "1", y: "2" }
+        { name: "临汾市", coordinate: [111.517973, 36.08415], appOrg: "1L001", x: "1", y: "2" },
+        { name: "忻州市", coordinate: [112.703538, 38.43769], appOrg: "1H001", x: "1", y: "2" },
+        { name: "运城市", coordinate: [111.003957, 35.022778], appOrg: "1M001", x: "1", y: "2" },
+        { name: "吕梁市", coordinate: [111.134335, 37.524366], appOrg: "1J001", x: "1", y: "2" }
       ],
       appOrg: "10001",
       showBack: false,
@@ -478,32 +488,27 @@ export default {
               position: 'top',
               formatter: (params) => // 格式化提示框内容
                 params.seriesType === "scatter"
-                  ? `{theStyle|●}   {myStyle|${params.data.x}}\n{aStyle|●}   {myStyle|${params.data.y}}`
+                  ? `{myStyle|${params.data.x}}\n{myStyle|${params.data.y}}`
                   : params.name,
               rich: {
                 myStyle: {
                   color: "#fff", // 文字颜色
-                  fontSize: 17, // 字体大小
-                  lineHeight: 24,
-                },
-                theStyle: {
-                  color: "#00ffff", // 文字颜色
                   fontSize: 15, // 字体大小
-                  lineHeight: 24,
-                },
-                aStyle: {
-                  color: "#ffb700", // 文字颜色
-                  fontSize: 15, // 字体大小
-                  lineHeight: 15,
+                  lineHeight: 19,
+                  padding: [0, 0, 0, 25]
                 }
               },
+              backgroundColor: {
+                image: require("@/assets/zhang/myMap/bg.png"), // 使用图片背景
+              },
               borderColor: "rgba(56,236,250)", // 边框颜色
-              backgroundColor: "rgba(228,248,250,0.09)",
+              width: 45,
+              height: 38,
               // 发光效果配置:
               shadowColor: "rgb(142,241,255)", // 发光颜色
               shadowBlur: 10, // 模糊程度,值越大发光越明显
               borderWidth: 1,
-              padding: [4, 10,2], // 文字内边距(可选)
+              padding: [4, 10, 3], // 文字内边距(可选)
               borderRadius: 2, // 文字框圆角(可选)
             },
             data: this.points.map(({ name, coordinate, appOrg, x, y }) => ({
@@ -528,7 +533,7 @@ export default {
             type: "scatter", // 散点图(用于标注特殊位置)
             coordinateSystem: "geo", // 使用 `geo` 作为坐标系
             name: "center",
-            symbol: "image://" + require("@/assets/zhang/myMap//building.png"),
+            symbol: "image://" + require("@/assets/zhang/myMap/building.png"),
             symbolSize: 40, // 标记的大小
             data: [{
               name: "山西省公司(本部)",

+ 10 - 10
src/views/screen/map/mapTwo.vue

@@ -55,16 +55,16 @@ export default {
       },
       points:[
         { name: "太原市", coordinate: [111.9393, 38.0070], appOrg: "1A003", x: "0", y: "2" },
-        { name: "大同市", coordinate: [113.3002, 40.0968], appOrg: "1B001", x: "0", y: "2" },
-        { name: "阳泉市", coordinate: [113.6805, 37.8863], appOrg: "1C001", x: "0", y: "2" },
-        { name: "长治市", coordinate: [113.1163, 36.1954], appOrg: "1D001", x: "0", y: "2" },
-        { name: "晋城市", coordinate: [113.2513, 35.6007], appOrg: "1E001", x: "0", y: "2" },
-        { name: "朔州市", coordinate: [112.4329, 39.6312], appOrg: "1F001", x: "0", y: "2" },
-        { name: "晋中市", coordinate: [113.2527, 37.3870], appOrg: "1K001", x: "0", y: "2" },
-        { name: "临汾市", coordinate: [111.5186, 35.8582], appOrg: "1L001", x: "0", y: "2" },
-        { name: "忻州市", coordinate: [112.7341, 38.6167], appOrg: "1H001", x: "0", y: "2" },
-        { name: "运城市", coordinate: [110.9069, 34.9264], appOrg: "1M001", x: "0", y: "2" },
-        { name: "吕梁市", coordinate: [111.1443, 37.4183], appOrg: "1J001", x: "0", y: "2" }
+        { name: "大同市", coordinate: [113.72499, 39.904541], appOrg: "1B001", x: "0", y: "2" },
+        { name: "阳泉市", coordinate: [113.505474, 38.064652], appOrg: "1C001", x: "0", y: "2" },
+        { name: "长治市", coordinate: [113.121277, 36.478022], appOrg: "1D001", x: "0", y: "2" },
+        { name: "晋城市", coordinate: [112.783186, 35.610944], appOrg: "1E001", x: "0", y: "2" },
+        { name: "朔州市", coordinate: [112.388197, 39.579375], appOrg: "1F001", x: "0", y: "2" },
+        { name: "晋中市", coordinate: [113.259398, 37.329161], appOrg: "1K001", x: "0", y: "2" },
+        { name: "临汾市", coordinate: [111.491988, 36.228828], appOrg: "1L001", x: "0", y: "2" },
+        { name: "忻州市", coordinate: [112.664867, 38.685126], appOrg: "1H001", x: "0", y: "2" },
+        { name: "运城市", coordinate: [110.920718, 35.188073], appOrg: "1M001", x: "0", y: "2" },
+        { name: "吕梁市", coordinate: [111.268548, 37.684104], appOrg: "1J001", x: "0", y: "2" }
       ]
     }
   },

+ 10 - 2
src/views/screen/map/shanxi.json

@@ -217,7 +217,8 @@
       "properties": {
         "adcode": 140200,
         "name": "大同市",
-        "center": [113.295259, 40.09031],
+        "cp": [114.1502, 39.5768],
+        "center": [113.9502, 39.2768],
         "centroid": [113.72499, 39.904541],
         "childrenNum": 10,
         "level": "city",
@@ -497,6 +498,7 @@
       "properties": {
         "adcode": 140300,
         "name": "阳泉市",
+        "cp": [114.083285, 37.861188],
         "center": [113.583285, 37.861188],
         "centroid": [113.505474, 38.064652],
         "childrenNum": 5,
@@ -641,6 +643,7 @@
       "properties": {
         "adcode": 140400,
         "name": "长治市",
+        "cp": [112.6163, 36.5254],
         "center": [113.113556, 36.191112],
         "centroid": [112.921277, 36.478022],
         "childrenNum": 12,
@@ -881,6 +884,7 @@
       "properties": {
         "adcode": 140500,
         "name": "晋城市",
+        "cp": [112.3113, 35.4607],
         "center": [112.851274, 35.497553],
         "centroid": [112.713186, 35.610944],
         "childrenNum": 6,
@@ -1067,7 +1071,7 @@
       "properties": {
         "adcode": 140600,
         "name": "朔州市",
-        "cp": [112.433467, 39.370208],
+        "cp": [112.863467, 39.460208],
         "center": [112.433387, 39.331261],
         "centroid": [112.648197, 39.619375],
         "childrenNum": 6,
@@ -1609,6 +1613,7 @@
       "properties": {
         "adcode": 140800,
         "name": "运城市",
+        "cp": [111.3957, 35.032778],
         "center": [111.003957, 35.022778],
         "centroid": [111.070718, 35.188073],
         "childrenNum": 13,
@@ -1826,6 +1831,7 @@
       "properties": {
         "adcode": 140900,
         "name": "忻州市",
+        "cp": [112.133538, 38.71769],
         "center": [112.733538, 38.41769],
         "centroid": [112.414867, 38.885126],
         "childrenNum": 14,
@@ -2168,6 +2174,7 @@
       "properties": {
         "adcode": 141000,
         "name": "临汾市",
+        "cp": [111.007973, 36.08415],
         "center": [111.517973, 36.08415],
         "centroid": [111.381988, 36.228828],
         "childrenNum": 17,
@@ -2477,6 +2484,7 @@
       "properties": {
         "adcode": 141100,
         "name": "吕梁市",
+        "cp": [111.1443, 37.1183],
         "center": [111.134335, 37.524366],
         "centroid": [111.268548, 37.684104],
         "childrenNum": 13,