From b781d8f13a5b6ce20cfad7ec6c2d0a72013a8764 Mon Sep 17 00:00:00 2001 From: 徐旺旺 <11530253@qq.com> Date: 星期三, 21 四月 2021 16:51:43 +0800 Subject: [PATCH] 修改比例尺的BUG --- src/components/LayerController/service/WfsLayerService.js | 84 +++++++++++++++++++++-------------------- src/conf/layers/LayerHbss.js | 2 src/components/LayerController/service/LayerFactory.js | 29 +++++++++----- 3 files changed, 63 insertions(+), 52 deletions(-) diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js index 9387933..909038e 100644 --- a/src/components/LayerController/service/LayerFactory.js +++ b/src/components/LayerController/service/LayerFactory.js @@ -32,7 +32,13 @@ initMinZoom (config) { const minZoom = parseInt(config.minZoom) if (minZoom) { - this.minZoomLayers[minZoom] = config + var configs = this.minZoomLayers[minZoom] + if (configs) { + configs[configs.length] = config + } else { + configs = [config] + } + this.minZoomLayers[minZoom] = configs } } @@ -101,20 +107,23 @@ * @param layerConfig */ initEvent (layerConfig) { - // this.map.on('zoomend ', () => this.toggleByZoom()) + this.map.on('zoomend ', () => this.toggleByZoom()) } toggleByZoom () { const zoom = this.map.getZoom() for (var k in this.minZoomLayers) { - const config = this.minZoomLayers[k] - const checked = config.checked - console.log(zoom) - console.log(k) - if (checked && zoom > k) { - this.show(config) - } else if (checked && zoom < k) { - this.hide(config) + const configs = this.minZoomLayers[k] + for (var j in configs) { + const config = configs[j] + const checked = config.checked + console.log(zoom) + console.log(k) + if (checked && zoom > k) { + this.show(config) + } else if (checked && zoom < k) { + this.hide(config) + } } } } diff --git a/src/components/LayerController/service/WfsLayerService.js b/src/components/LayerController/service/WfsLayerService.js index cb0a4bf..0c601a2 100644 --- a/src/components/LayerController/service/WfsLayerService.js +++ b/src/components/LayerController/service/WfsLayerService.js @@ -35,48 +35,50 @@ } draw (features) { - const icon = this.config.icon - const styles = this.config.styles - Object.assign(STYLES, styles) - const geojsonLayer = this.L.geoJSON(features, { - style: function (feature) { - return { - fill: STYLES.FILL, - weight: STYLES.WEIGHT, - fillColor: STYLES.FILL_COLOR, - color: STYLES.COLOR, - fillOpacity: STYLES.FILL_OPACITY, - opacity: STYLES.OPACITY - // dashArray: STYLES.DASH_ARRAY, - // dashSpeed: STYLES.DASH_SPPED - } - }, - pointToLayer: (geoJsonPoint, latlng) => { - return this.L.canvasMarker(latlng, - { - img: { - // url: 'assets/images/map/marker-icon.png', - url: '/assets/images/map/' + icon, - size: STYLES.ICON_SIZE - } + if (features && features.length > 0) { + const icon = this.config.icon + const styles = this.config.styles + Object.assign(STYLES, styles) + const geojsonLayer = this.L.geoJSON(features, { + style: function (feature) { + return { + fill: STYLES.FILL, + weight: STYLES.WEIGHT, + fillColor: STYLES.FILL_COLOR, + color: STYLES.COLOR, + fillOpacity: STYLES.FILL_OPACITY, + opacity: STYLES.OPACITY + // dashArray: STYLES.DASH_ARRAY, + // dashSpeed: STYLES.DASH_SPPED + } + }, + pointToLayer: (geoJsonPoint, latlng) => { + return this.L.canvasMarker(latlng, + { + img: { + // url: 'assets/images/map/marker-icon.png', + url: '/assets/images/map/' + icon, + size: STYLES.ICON_SIZE + } + }) + }, + onEachFeature: (feature, layer) => { + layer.bindPopup((layer) => { + this.popupComp.setDatas(layer) + this.popupComp.setShow() + return this.popupComp.$el + }, { + className: 's-map-popup', + minWidth: 300, + closeButton: false, + autoClose: false }) - }, - onEachFeature: (feature, layer) => { - layer.bindPopup((layer) => { - this.popupComp.setDatas(layer) - this.popupComp.setShow() - return this.popupComp.$el - }, { - className: 's-map-popup', - minWidth: 300, - closeButton: false, - autoClose: false - }) - .bindTooltip((layer) => this.tooltipListener(layer), { direction: 'bottom', offset: [0, 15], sticky: true }) - .on('mouseover', (e) => this.mouseOverListener(e, layer)).on('mouseout', (e) => this.mouseOutListener(e, layer)) - } - }).addTo(this.layer) - setZIndex(geojsonLayer) + .bindTooltip((layer) => this.tooltipListener(layer), { direction: 'bottom', offset: [0, 15], sticky: true }) + .on('mouseover', (e) => this.mouseOverListener(e, layer)).on('mouseout', (e) => this.mouseOutListener(e, layer)) + } + }).addTo(this.layer) + setZIndex(geojsonLayer) + } } mouseOverListener (e, layer) { diff --git a/src/conf/layers/LayerHbss.js b/src/conf/layers/LayerHbss.js index 5fdeca9..e0bceeb 100644 --- a/src/conf/layers/LayerHbss.js +++ b/src/conf/layers/LayerHbss.js @@ -12,7 +12,7 @@ code: 'yj', name: '绐ㄤ簳', sname: '绐ㄤ簳', - checked: true, + checked: false, minZoom: 16, wfs: WFS_URL + '?TYPENAME=绐ㄤ簳', icon: 'sewers/绐ㄤ簳.png' -- Gitblit v1.8.0