当前位置: 首页 > article >正文

vue openlayers一些图层操作(获取指定名字的图层等)

vue openlayers一些图层操作(获取指定名字的图层等)

注意: 添加图层时要指定图层名称, 如:

var source = new ol.source.TileSuperMapRest({
    url: '',
})
var layer = new ol.layer.Tile({
    source: source,
    projection: 'EPSG:4326',
    name: '图层名称', // 设置图层名称
    zIndex: 100,
})

map.addLayer(layer)
  • 图层的一些操作
    • 判断地图上是否有指定图层
    • 判断图层是显示状态还是隐藏状态
    • 获取指定名字的图层
    • 获取地图上所有图层名称
 /**
   * 判断地图上是否有指定图层
   * @param {*} map
   * @param {String} layerName 图层名
   */
  isLayerInMap(map, layerName) {
    var layers = map.getLayers().getArray()
    // layer.getVisible()
    for (let index = 0; index < layers.length; index++) {
      const layer = layers[index]
      if (layerName && layer.get(layerName) == layerName) {
        return true
      }
    }
    return false
  }
  /**
   * 判断图层是显示状态还是隐藏状态
   * @param {*} map
   * @param {String} layerName 图层名
   * @returns true/false
   */
  isLayerVisible(map, layerName) {
    var layers = map.getLayers().getArray()
    for (let index = 0; index < layers.length; index++) {
      const layer = layers[index]
      if (layerName && layer.get('name') == layerName && layer.getVisible()) {
        return true
      }
    }
    return false
  }

  /**
   * 获取指定名字的图层
   * @param {*} map
   * @param {String} layerName 图层名
   * @returns
   */
  getLayerByName(map, layerName) {
    var layers = map.getLayers().getArray()
    for (let index = 0; index < layers.length; index++) {
      const layer = layers[index]
      if (layerName && layer.get('name') == layerName) {
        return layer
      }
    }
    return null
  }
  /**
   * 获取地图上所有图层名称
   * @param {*} map
   * @returns 图层名称数组
   */
  getAllLayerNames(map) {
    let res = []
    var layers = map.getLayers().getArray()
    for (let index = 0; index < layers.length; index++) {
      const layer = layers[index]
      if (layer.get('name')) {
        res.push(layer.get('name'))
      }
    }
    return res
  }

http://www.kler.cn/a/389390.html

相关文章:

  • gpu-V100显卡相关知识
  • 鸿蒙进阶篇-属性动画-animateTo转场动画
  • 客户案例 | 如何利用Ansys工具提供互联系统(以及系统的系统),从而使“软件定义汽车”成为可能
  • 文件上传漏洞--理论
  • 基于BILSTM及其他RNN序列模型的人名分类器
  • pgsql和mysql的自增主键差异
  • 无线局域网四种类型
  • 基于JSP网上书城的设计与实现
  • QJson-趟过的各种坑(先坑后用法)
  • 前端简明教程--初体验
  • 使用vscode 连接linux进行开发
  • 2款使用.NET开发的数据库系统
  • React 探秘(四):手撸 mini-react
  • lua入门教程:type函数
  • 第二十周学习周报
  • 工程认证与Spring Boot:计算机课程管理的新挑战
  • toRef,toRefs,toRaw
  • Centos7 安装RabbitMQ以及web管理插件
  • playwright使用
  • 大模型预训练+微调大模型;大模型提示/指令模式”(Prompt/Instruct Mode)
  • AUTOSAR CP TCP/IP堆栈规范导读
  • 一文熟悉新版llama.cpp使用并本地部署LLAMA
  • 秃姐学AI系列之:GRU——门控循环单元 | LSTM——长短期记忆网络
  • 盲盒小程序开发,盲盒经济正向线上转战发展
  • 地下水数值模拟、 地下水环评、Visual modflow Flex、Modflow
  • 思源笔记轻松连接本地Ollama大语言模型,开启AI写作新体验!