From d92a0a69eb34350bc94df1df6fbbc6749205a482 Mon Sep 17 00:00:00 2001
From: wangqi <magical1908@outlook.com>
Date: 星期四, 25 三月 2021 15:04:41 +0800
Subject: [PATCH] json文件

---
 src/views/MapTemplate.vue |  193 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 168 insertions(+), 25 deletions(-)

diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue
index 8b3b26c..e40f80b 100644
--- a/src/views/MapTemplate.vue
+++ b/src/views/MapTemplate.vue
@@ -1,86 +1,220 @@
 <template>
   <div class="full-screen">
-    <div id="map" ref="rootmap"></div>
+    <popup ref="popup" @callPopup="callPopup"></popup>
+    <popup-gas ref="popupGas" @popupgas="popupgas"></popup-gas>
+    <div id="map" ref="rootmap">
+    </div>
     <sgis-layer-controller :preset="'warningPreset'">
       <lc-basemap></lc-basemap>
       <!--            <div class="barline"></div>-->
-      <lc-service-layer class="barline"></lc-service-layer>
+      <lc-service-layer class="barline" v-if="lcServiceLayerVisible"></lc-service-layer>
     </sgis-layer-controller>
-    <lc-service-layer-filter v-show="showServiceLayerFilter" ref="serviceLayerFilter"></lc-service-layer-filter>
     <monitor-panel></monitor-panel>
-    <top-enterprise-panel></top-enterprise-panel>
-    <tool-box-panel></tool-box-panel>
+<!--            <top-enterprise-panel></top-enterprise-panel>-->
+    <tool-box-panel ref="toolBox"></tool-box-panel>
+<!--    <menu-special></menu-special>-->
+    <legend-panel></legend-panel>
+    <summary-sheets></summary-sheets>
+    <enterprise></enterprise>
+<!--    <el-button id="map-btn" el-icon-c-scale-to-original icon="el-icon-c-scale-to-original" circle @click="isShowHidden"></el-button>-->
   </div>
 </template>
 
 <script>
 import 'leaflet/dist/leaflet.css'
 import Sgis from '@src/Sgis'
+// import Vue from 'vue'
+import creatPopup from './creatPopup.js'
 // import mapConfig from '@/conf/MapConfig'
 import SgisLayerController from '@components/LayerController/LayerController'
 import LcBasemap from '@components/LayerController/modules/LcBaseMap'
 import LcServiceLayer from '@components/LayerController/modules/LcServiceLayer'
-import LcServiceLayerFilter from '@components/LayerController/modules/LcServiceLayerFilter'
 import MonitorPanel from '@components/panel/RightSearchPanel'
-import TopEnterprisePanel from '@components/panel/TopEnterprisePanel'
+// import TopEnterprisePanel from '@components/panel/TopEnterprisePanel'
+import summarySheets from '@components/table/summarySheets.vue'
 import ToolBoxPanel from '@components/panel/ToolBoxPanel'
+import Popup from '@views/popup/Popup'
+// import MenuSpecial from '@components/panel/MenuTopic'
+import LegendPanel from '@components/panel/LegendPanel'
+import Enterprise from '../components/table/enterprise'
+import PopupGas from '@/components/flueGas/popup-gas'
 
 export default {
   name: 'MapTemplate',
   components: {
+    Enterprise,
+    LegendPanel,
+    // MenuSpecial,
     ToolBoxPanel,
-    TopEnterprisePanel,
+    // TopEnterprisePanel,
     SgisLayerController,
     MonitorPanel,
     LcBasemap,
     LcServiceLayer,
-    LcServiceLayerFilter
+    Popup,
+    summarySheets,
+    PopupGas
   },
   data () {
     return {
+      map: null,
+      lcServiceLayerVisible: false,
       basemapHelper: {},
       serviceLayerHelper: {},
       vectorLayerHelper: {}
     }
   },
   computed: {
-    showServiceLayerFilter () {
-      return this.$store.state.map.showServiceLayerFilter
-    },
-    mapConfig () {
-      return this.$store.state.map.mapConfig
+    config () {
+      return this.$store.state.map.config
     }
   },
   beforeMount () {
+    // import('@/assets/airQuality.json').then(res => {
+    //   console.log(res.features)
+    // })
     this.$nextTick(() => {
       this.init()
     })
   },
   methods: {
     saveMapStatus () {
-      this.$store.commit('setMapObj', this.mapObj)
+      window.serviceLayerHelper = this.serviceLayerHelper
+      this.$store.commit('setMapObj', this.map)
       this.$store.commit('setBasemapHelper', this.basemapHelper)
-      this.$store.commit('setServiceLayerHelper', this.serviceLayerHelper)
+      // this.$store.commit('setServiceLayerHelper', this.serviceLayerHelper)
       this.$store.commit('setVectorLayerHelper', this.vectorLayerHelper)
+
+      this.lcServiceLayerVisible = true
     },
-    init () {
+    init: function () {
       const mapcontainer = this.$refs.rootmap
-      this.mapObj = Sgis.initMap(mapcontainer)
+      this.map = Sgis.initMap(mapcontainer)
+      this.$refs.toolBox.map = this.map
 
-      this.basemapHelper = Sgis.initBasemapsHelper(this.mapObj.map, this.mapObj.L) // 鍒濆鍖栧熀纭�搴曞浘鍔╂墜
-      this.basemapHelper.initBasemap(this.mapConfig, false) // 绗簩涓弬鏁帮紝琛ㄧず鏄惁鍐呯綉搴曞浘
+      this.basemapHelper = Sgis.initBasemapsHelper(this.map) // 鍒濆鍖栧熀纭�搴曞浘鍔╂墜
+      this.basemapHelper.initBasemap(this.config, false) // 绗簩涓弬鏁帮紝琛ㄧず鏄惁鍐呯綉搴曞浘
 
-      this.serviceLayerHelper = Sgis.initTileLayersHelper(this.mapObj.map, this.mapObj.L) // 鍒濆鍖栦笟鍔″簳鍥惧姪鎵�
-      this.serviceLayerHelper.initServiceLayers(this.mapConfig)
+      this.serviceLayerHelper = Sgis.initTileLayersHelper(this.map) // 鍒濆鍖栦笟鍔″簳鍥惧姪鎵�
+      console.log('-------' + this.$refs.popup.$el)
+      this.serviceLayerHelper.initServiceLayers(this.config, this.$refs.popup)
 
-      this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.mapObj.map, this.mapObj.L) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵�
-      this.vectorLayerHelper.initVectorLayers(this.mapConfig)
+      this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵�
+      this.vectorLayerHelper.initVectorLayers(this.config)
 
       this.saveMapStatus()
       // this.setMapObj(this.mapObj)
       // this.setBasemapHelper(this.basemapHelper)
       // this.setServiceLayerHelper(this.serviceLayerHelper)
       // this.setVectorLayerHelper(this.vectorLayerHelper)
+      import('@/assets/airQuality.json').then(res => {
+      // this.addMarker()
+        this.addMarker(res.features)
+      })
+      // console.log(this.L)
+    },
+    addMarker (arr) {
+      const L = this.L
+      var icon = new L.Icon({
+        iconUrl: 'assets/images/map/marker-icon.png',
+        shadowUrl: 'assets/images/map/marker-shadow.png',
+        iconSize: [25, 41],
+        iconAnchor: [12, 41],
+        popupAnchor: [1, -34],
+        shadowSize: [41, 41]
+      })
+      // 00000000000000000000
+      var marker = L.marker([32.222, 118.7843], {
+        icon: icon
+      }).addTo(this.map)
+        .bindPopup(() => this.$refs.popup.$el, {
+          className: 's-map-popup',
+          minWidth: 300,
+          closeButton: false,
+          autoClose: false
+        })
+        .bindTooltip('瀛椾綋鍏夋檿鏁堟灉t.', {
+          // permanent : true,
+          offset: [0, 0], // 鍋忕Щ
+          direction: 'right', // 鏀剧疆浣嶇疆
+          // sticky:true,//鏄惁鏍囪鍦ㄧ偣涓婇潰
+          className: 'anim-tooltip'// CSS鎺у埗
+        })
+      marker.on('popupopen', this.onLayerClick)
+      // 000000000000000000
+      // 搴熸皵
+      // const MagicMarker = new L.marker.magic([32.226, 118.7848], {
+      //   iconUrl: 'assets/images/map/marker-icon.png',
+      //   magic: 'vanishIn'
+      // }).addTo(this.map)
+      arr.forEach(item => {
+        const { geometry: { coordinates } } = item
+        const coordinate = coordinates.map(item => parseFloat(item))
+        const data = creatPopup({ isShow: true, tirm: '666' })
+        console.log(item.properties.name)
+        // console.log(coordinate)
+        L.marker(coordinate, { icon: icon }).addTo(this.map).bindPopup(() => data, {
+          className: 's-map-popup',
+          minWidth: 300,
+          closeButton: false,
+          autoClose: false
+        }).bindTooltip(item.properties.name, {
+          // permanent : true,
+          offset: [0, 0], // 鍋忕Щ
+          direction: 'right', // 鏀剧疆浣嶇疆
+          // sticky:true,//鏄惁鏍囪鍦ㄧ偣涓婇潰
+          className: 'anim-tooltip'// CSS鎺у埗
+        })
+      })
+      // marker.on('popupopen', this.onClickgaspoppup)
+      // console.log(this.$refs)
+      // L.marker([38.8332098722457, 117.447918949615], {
+      //   icon: icon
+      // }).addTo(this.map)
+      // var marker = L.marker([32.222, 118.7843], {
+      //   icon: icon
+      // }).addTo(this.map)
+      //   .bindPopup(() => data, {
+      //     className: 's-map-popup',
+      //     minWidth: 300,
+      //     closeButton: false,
+      //     autoClose: false
+      //   })
+      //   .bindTooltip('瀛椾綋鍏夋檿鏁堟灉t.', {
+      //     // permanent : true,
+      //     offset: [0, 0], // 鍋忕Щ
+      //     direction: 'right', // 鏀剧疆浣嶇疆
+      //     // sticky:true,//鏄惁鏍囪鍦ㄧ偣涓婇潰
+      //     className: 'anim-tooltip'// CSS鎺у埗
+      //   })
+      //
+      // L.marker([32.229, 118.7843], {
+      //   icon: icon
+      // }).addTo(this.map)
+      //   .bindPopup(() => data1, {
+      //     className: 's-map-popup',
+      //     minWidth: 300,
+      //     closeButton: false,
+      //     autoClose: false
+      //   })
+      //   .bindTooltip('瀛椾綋鍏夋檿鏁堟灉t.', {
+      //     // permanent : true,
+      //     offset: [0, 0], // 鍋忕Щ
+      //     direction: 'right', // 鏀剧疆浣嶇疆
+      //     // sticky:true,//鏄惁鏍囪鍦ㄧ偣涓婇潰
+      //     className: 'anim-tooltip'// CSS鎺у埗
+      //   })
+      //
+      // marker.on('popupopen', this.onLayerClick)
+    },
+    onLayerClick () {
+      this.$refs.popup.setShow()
+    },
+    callPopup (val) {
+      console.log(val)
+    },
+    popupgas () {
+      console.log(1)
     }
   }
 }
@@ -106,5 +240,14 @@
     //background-color: #0661AE;
     border-top: 1px solid #0661AE;
   }
+  #map-btn {
+    position: fixed;
+    top: 20px;
+    left: 100px;
+    z-index: 9999;
+  }
+  .leaflet-custom-icon{
+    background: white;
+  }
 }
-</style>>
+</style>

--
Gitblit v1.8.0