From 17e7836b1d0a7bd1a51d44ae071a88423a9f9370 Mon Sep 17 00:00:00 2001
From: chenzeping <ChenZeping02609@163.com>
Date: 星期一, 08 三月 2021 17:57:16 +0800
Subject: [PATCH] 添加工具栏功能
---
src/views/MapTemplate.vue | 177 ++++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 120 insertions(+), 57 deletions(-)
diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue
index cbc4bcc..a98e84c 100644
--- a/src/views/MapTemplate.vue
+++ b/src/views/MapTemplate.vue
@@ -1,13 +1,18 @@
<template>
<div class="full-screen">
- <div id="map" ref="rootmap"></div>
- <sgis-layer-controller :preset="'warningPreset'">
- <lc-basemap></lc-basemap>
- <div class="barline"></div>
- <lc-service-layer></lc-service-layer>
- </sgis-layer-controller>
- <lc-service-layer-filter v-show="showServiceLayerFilter" ref="serviceLayerFilter"></lc-service-layer-filter>
- <monitor-panel></monitor-panel>
+ <popup ref="popup" @callPopup="callPopup"></popup>
+ <div id="map" ref="rootmap">
+ </div>
+ <sgis-layer-controller :preset="'warningPreset'">
+ <lc-basemap></lc-basemap>
+ <!-- <div class="barline"></div>-->
+ <lc-service-layer class="barline" v-if="lcServiceLayerVisible"></lc-service-layer>
+ </sgis-layer-controller>
+ <monitor-panel></monitor-panel>
+ <!-- <top-enterprise-panel></top-enterprise-panel>-->
+ <tool-box-panel :map="this.map"></tool-box-panel>
+ <menu-special></menu-special>
+ <legend-panel></legend-panel>
</div>
</template>
@@ -18,76 +23,134 @@
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/MonitorPanel'
-import { mapMutations, mapState } from 'vuex'
+import MonitorPanel from '@components/panel/RightSearchPanel'
+// import TopEnterprisePanel from '@components/panel/TopEnterprisePanel'
+import ToolBoxPanel from '@components/panel/ToolBoxPanel'
+import Popup from '@views/popup/Popup'
+import MenuSpecial from '@components/panel/MenuTopic'
+import LegendPanel from '@components/panel/LegendPanel'
export default {
name: 'MapTemplate',
- components: {SgisLayerController, MonitorPanel, LcBasemap, LcServiceLayer, LcServiceLayerFilter},
- data(){
+ components: {
+ LegendPanel,
+ MenuSpecial,
+ ToolBoxPanel,
+ // TopEnterprisePanel,
+ SgisLayerController,
+ MonitorPanel,
+ LcBasemap,
+ LcServiceLayer,
+ Popup
+ },
+ data () {
return {
+ map: null,
+ lcServiceLayerVisible: false,
basemapHelper: {},
serviceLayerHelper: {},
vectorLayerHelper: {}
}
},
- computed:{
- ...mapState({
- showServiceLayerFilter: state => state.showServiceLayerFilter,
- mapConfig: state => state.mapConfig
+ computed: {
+ config () {
+ return this.$store.state.map.config
+ }
+ },
+ beforeMount () {
+ this.$nextTick(() => {
+ this.init()
})
},
- beforeMount(){
- this.$nextTick(() => {
- this.init()
+ methods: {
+ saveMapStatus () {
+ 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('setVectorLayerHelper', this.vectorLayerHelper)
+
+ this.lcServiceLayerVisible = true
+ },
+ init () {
+ const mapcontainer = this.$refs.rootmap
+ this.map = Sgis.initMap(mapcontainer)
+
+ this.basemapHelper = Sgis.initBasemapsHelper(this.map) // 鍒濆鍖栧熀纭�搴曞浘鍔╂墜
+ this.basemapHelper.initBasemap(this.config, false) // 绗簩涓弬鏁帮紝琛ㄧず鏄惁鍐呯綉搴曞浘
+
+ 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.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵�
+ this.vectorLayerHelper.initVectorLayers(this.config)
+
+ this.saveMapStatus()
+ // this.setMapObj(this.mapObj)
+ // this.setBasemapHelper(this.basemapHelper)
+ // this.setServiceLayerHelper(this.serviceLayerHelper)
+ // this.setVectorLayerHelper(this.vectorLayerHelper)
+ this.addMarker()
+ },
+ addMarker () {
+ 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]
})
- },
- methods:{
- ...mapMutations({
- setMapObj: 'setMapObj',
- setBasemapHelper: 'setBasemapHelper',
- setServiceLayerHelper: 'setServiceLayerHelper',
- setVectorLayerHelper: 'setVectorLayerHelper'
- }),
- init() {
- const mapcontainer = this.$refs.rootmap
- this.mapObj = Sgis.initMap(mapcontainer)
+ var marker = L.marker([32.2221, 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鎺у埗
+ })
- this.basemapHelper = Sgis.initBasemapsHelper(this.mapObj.map, this.mapObj.L) // 鍒濆鍖栧熀纭�搴曞浘鍔╂墜
- this.basemapHelper.initBasemap(this.mapConfig, false) // 绗簩涓弬鏁帮紝琛ㄧず鏄惁鍐呯綉搴曞浘
-
- this.serviceLayerHelper = Sgis.initTileLayersHelper(this.mapObj.map, this.mapObj.L) // 鍒濆鍖栦笟鍔″簳鍥惧姪鎵�
- this.serviceLayerHelper.initServiceLayers(this.mapConfig)
-
- this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.mapObj.map, this.mapObj.L) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵�
- this.vectorLayerHelper.initVectorLayers(this.mapConfig)
-
- this.setMapObj(this.mapObj)
- this.setBasemapHelper(this.basemapHelper)
- this.setServiceLayerHelper(this.serviceLayerHelper)
- this.setVectorLayerHelper(this.vectorLayerHelper)
- }
+ marker.on('popupopen', this.onLayerClick)
+ },
+ onLayerClick () {
+ this.$refs.popup.setShow()
+ },
+ callPopup (val) {
+ console.log(val)
+ }
}
}
</script>
<style lang="less">
-.full-screen{
- width: 100%;
- height: 100%;
- margin: 0;
- padding: 0;
- position: absolute;
- #map{
+.full-screen {
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+
+ #map {
height: 100%;
width: 100%;
}
- .barline{
- width: 100%;
- height: 1px;
- background-color: #0661AE;
+
+ .barline {
+ //width: 100%;
+ //height: 1px;
+ //background-color: #0661AE;
+ border-top: 1px solid #0661AE;
}
}
-</style>>
+</style>
--
Gitblit v1.8.0