openlayer根据不同的状态显示不同的图层颜色

根据不同的状态governanceType显示不同的颜色

数据格式

首先清楚别的图层

this.removeLayer();

javascript 复制代码
 // 创建一个映射,将governanceType映射到颜色
  const colorMapping1 = {
    '18': 'rgba(126, 97, 18, 0.5)',  // 假设治理类型1对应颜色选项0
    '19': 'rgba(160, 133, 254, 0.5)',  // 假设治理类型2对应颜色选项1
    '15': 'rgba(55, 43, 65, 0.5)',  // 假设治理类型3对应颜色选项2
    '20': 'rgba(178, 111, 173, 0.5)',  // 假设治理类型3对应颜色选项2
    '1': 'rgba(150, 209, 16, 0.5)',  // 假设治理类型4对应颜色选项3
    '3': 'rgba(49, 77, 92, 0.5)',  // 假设治理类型5对应颜色选项4
    '14': 'rgba(248, 49, 176, 0.5)',  // 假设治理类型6对应颜色选项5
    '16': 'rgba(141, 13, 63, 0.5)',  // 假设治理类型7对应颜色选项6
    '17': 'rgba(6, 206, 10, 0.5)',  // 假设治理类型7对应颜色选项6
    '2': 'rgba(37, 189, 131, 0.5)',  // 假设治理类型7对应颜色选项6
    // 其他治理类型映射
  };
  const colorMapping = {
    '18': 'rgba(126, 97, 18, 1)',  // 假设治理类型1对应颜色选项0
    '19': 'rgba(160, 133, 254, 1)',  // 假设治理类型2对应颜色选项1
    '15': 'rgba(55, 43, 65, 1)',  // 假设治理类型3对应颜色选项2
    '20': 'rgba(178, 111, 173, 1)',  // 假设治理类型3对应颜色选项2
    '1': 'rgba(150, 209, 16, 1)',  // 假设治理类型4对应颜色选项3
    '3': 'rgba(49, 77, 92, 1)',  // 假设治理类型5对应颜色选项4
    '14': 'rgba(248, 49, 176, 1)',  // 假设治理类型6对应颜色选项5
    '16': 'rgba(141, 13, 63, 1)',  // 假设治理类型7对应颜色选项6
    '17': 'rgba(6, 206, 10, 1)',  // 假设治理类型7对应颜色选项6
    '2': 'rgba(37, 189, 131, 1)',  // 假设治理类型7对应颜色选项6
    // 其他治理类型映射
  };

  // 已通过图层
  this.vectorLayer = new VectorLayer({
    source: new VectorSource({
      features: [], // 初始化features数组
    }),
    style: (feature) => {
      const governanceType = feature.get('governanceType'); //通过get方法获取feature里面governanceTyped属性值
      console.log(governanceType,'governanceType')
      return new Style({
        fill: new Fill({
          color: colorMapping1[governanceType] || this.drawColorOptions[2].fill, // 默认颜色
        }),
        stroke: new Stroke({
          color: colorMapping[governanceType],
          //  color: this.drawColorOptions[2].stroke,
          width: 2,
        }),
      });
    },
    visible: true,
    zIndex: 999,
  });
  let data = {
    type: "FeatureCollection",
    features: list
      .filter((item) => item.operationState === 1)
      .map((item) => {
        return {
          type: "Feature",
          geometry: item.pondGeomJson,
          properties: {
            governanceType: item.governanceType, // 确保governanceType在properties中
          },
        };
      }),
  };
  console.log(data,'data')
  let features = new GeoJSON().readFeatures(data);
  this.vectorLayer.getSource().addFeatures(features);
  this.map.addLayer(this.vectorLayer);
相关推荐
警醒与鞭策6 小时前
【无标题】
android·unity·性能优化·游戏引擎·perforce
EatFan6 小时前
Spring Boot 4 落地观察:从 yudao-cloud、matecloud、JPower 看国产脚手架的升级路线与迁移清单
java·spring boot·后端·spring cloud·微服务·后端开发·jdk 21
Maiko Star7 小时前
* LangChain 提示词模板详解:ChatPromptTemplate 的使用与高级特性
java·人工智能·langchain
传奇开心果编程8 小时前
【Jetpack Compose进阶学与练】第14课:系列收尾复习总结;Compose项目常见坑点汇总;学习路线与后续学习方向
android·学习·ui·kotlin·android jetpack
现任明教教主~9 小时前
Thinkphp站群蜘蛛池SaaS系统YanyvSEO含多用户/积分/六大引擎计费/易支付对接
java·开发语言·spring
一条破秋裤9 小时前
Linux 线程创建:pthread_create 与基本回收
java·linux·运维
布吉岛的石头9 小时前
Java 程序员第 49 阶段5:BERT 预训练目标 MLM+NSP 的工程含义
java·人工智能·深度学习·bert·transformer
李游Leo10 小时前
《HarmonyOS 7 精准碰一碰跨设备协作开发实战》07:异常恢复、状态机与CrossDrop工程收尾【鸿蒙心迹】
android·harmonyos
摇滚侠10 小时前
《On Java 中文版 基础卷》阅读笔记 对象无处不在 03
java·笔记·python
二十雨辰11 小时前
[学成在线]-01项目背景
java