赞
踩
项目需要在地图中添加经纬网格,然后看了一下官网有相关的介绍
官网
我的项目是vue写的,当点击多选框显示隐藏经纬网格,下面直接写代码
这是绘制经纬网格方法
//引入 import TileArcGISRest from 'ol/source/TileArcGISRest' import "ol/ol.css"; import { Map, View } from "ol"; import OSM from "ol/source/OSM.js"; import TileLayer from "ol/layer/Tile"; import XYZ from "ol/source/XYZ"; import { fromLonLat } from "ol/proj"; import VectorLayer from 'ol/layer/Vector'; import Graticule from 'ol/layer/Graticule.js'; val是我点击多选框的true或者是false,为true添加,为false删除,由于是在我已有的图层添加,导致我删除经纬网格时一直不生效,所以getLayers()方法可以获取到图层,然后根据需要删除图层。 `` function wanggeMap(val) { let graticule = new Graticule({ showLabels: true,//为每条刻度线绘制一个带有各自纬度/经度的标签,默认true wrapX: false,//是否水平重复经纬网。 name:'Graticule',//假设每个层都有一个名为 'name' 的属性 strokeStyle: new Stroke({//用于绘制刻度线的样式 color: '#409eff',//线条颜色 width: 2,//线条宽度 lineDash: null//虚线模式,默认值为null,无虚线 [4] }) }) if (val == true) { imap.value.addLayer(graticule) } else { var layers = imap.value.getLayers(); layers.forEach(element => { //假设每个层都有一个名为 'name' 的属性 console.log(element.get('name')); if (element.get('name')=='Graticule') { //移除 imap.value.removeLayer(element) } }); } }
这是删除图层相关的网站openlayers怎么删除图层
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。