Cesium 加载 geojson 文件并对文件中的属性值进行颜色设置

news2025/1/20 13:21:26

文章目录

    • 需求
    • 分析
    • 解决

需求

Cesium 加载 geojson 文件并对文件中的属性值进行颜色设置

在这里插入图片描述

分析

在搜寻多种解决方案后,最后总结出 自己的解决方案

  • 方案一,没看懂
var geojsonOptions = {
      clampToGround : true //使数据贴地
    };
    var entities;
    promise =Cesium.GeoJsonDataSource.load('数据.geojson', geojsonOptions);
    promise.then(function (dataSource) {
      viewer.dataSources.add(dataSource);
      entities =dataSource.entities.values;
      var colorHash = {};
      for (var i = 0; i < entities.length; i++) {
          var entity = entities[i]; // 赋随机颜色
          var name = entity.name;
          var color = colorHash[name];
          if (!color) {
              color = Cesium.Color.fromRandom({
                  red: 1,
                  maximumGreen: 1,
                  maximumBlue: 1,
                  alpha : 1.0
              });
              colorHash[name] = color;
          }
          entity.polygon.material = color;
          entity.polygon.outline = false;            
          entity.polygon.extrudedHeight =5000.0;
          }
      });
      viewer.flyTo(promise);
  • 参考烦方案二:https://blog.csdn.net/qq_41553157/article/details/91040920

  • 参考方案三:https://blog.csdn.net/weixin_45782925/article/details/123873146

  • 参考方案四:https://blog.csdn.net/weixin_40187450/article/details/113446962

  • 参考方案六:https://blog.csdn.net/Enbir/article/details/122597412

  • 参考方案七:http://www.taodudu.cc/news/show-6244709.html?action=onClick

  • 最后总结出了自己的解决方案如下

解决

可以遍历 GeoJSON 中的每个要素

// 加载 geojson 文件并添加至 Cesium 的 dataSource 上
promise = viewer.dataSources.add(Cesium.GeoJsonDataSource.load("file.geojson"));//默认是黄色
promise.then(function (dataSource) {
	// 获取要素中的实体
    const entities = dataSource.entities.values;
    const colorHash = {};
     //显示颜色
    for (let i = 0; i < entities.length; i++) {
        const entity = entities[i];
        let count = entity.properties.count._value; //等级
        let color = colorHash[count];
        if (count == '1') {
            color = new Cesium.Color(76 / 255, 230 / 255, 0, 1);  // #4ce600
        } else if (count == '2') {
            color = new Cesium.Color(56 / 255, 168 / 255, 0, 1);  //#38a800
        } else if (count == '3') {
            color = new Cesium.Color(255, 25, 25, 1);  // #a8a800
        } else if (count == "4") {
            color = new Cesium.Color(230 / 255, 152 / 255, 0, 1);  // #e69800
        } else if (count == "5") {
            color = new Cesium.Color(255 / 255, 255 / 255, 0, 1);  // #ffff00
        } else if (count == "6") {
            color = new Cesium.Color(168 / 255, 0, 0, 1);  // #a80000
        } else {
            color = new Cesium.Color(130 / 255, 130 / 255, 130 / 255, 1);  // #828282
        }
        colorHash[count] = color;

      // 判断加载的空间数据点线面类型   赋值颜色
       let featureType = entity.properties._geometry._value.type;
         if (featureType == "MultiPolygon") {
             entity.polygon.material = color;
         } else if (featureType == "MultiLineString") {
	         entity.polyline.material = color;
	         entity.polyline.width = 3;
         } else if (featureType == "MultiPoint") {
             entity.point.material = color;
         }
    }
})
viewer.flyTo(promise);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/951185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解产品项目管理软件:介绍与比较

产品项目管理是指通过有效的规划、组织和控制来管理产品开发过程的一系列活动。它涵盖了需求分析、产品设计、开发、测试以及上市等不同阶段&#xff0c;并需要协调多个团队成员的工作。通过产品项目管理&#xff0c;团队可以更好地把握产品的战略目标、工作进度和资源分配&…

Oracle-day6:over()函数

目录 一、over()开窗函数 二、无参over()的使用 三、over(partition by 列名) 四、over(order by 列名 asc/desc) 五、over(partition by 列名 order by 列名 asc|desc) 六、练习&#xff08;笔试&#xff09; 一、over()开窗函数 拓展:数据库的版本 oracle:8i 9i 10g …

ICCV 2023 | 小鹏汽车纽约石溪:局部上下文感知主动域自适应LADA

摘要 主动域自适应&#xff08;ADA&#xff09;通过查询少量选定的目标域样本的标签&#xff0c;以帮助模型从源域迁移到目标域。查询数据的局部上下文信息非常重要&#xff0c;特别是在域间差异较大的情况下&#xff0c;然而现有的ADA方法尚未充分探索这一点。在本文中&#…

六、事务-4.并发事务问题

一、脏读 事务A执行3个操作&#xff0c;第1个操作执行select语句&#xff0c;第2个操作执行update语句。 注意&#xff1a;事务没有执行完成的时候&#xff0c;事务是没有提交的。只有事务的3个操作完成之后&#xff0c;事务才会提交。 但事务A中第2个操作&#xff0c;会把表…

改进YOLOv8系列:原创改进创新点 SIoU-NMS,EIoU-NMS,DIoU-NMS,CIoU-NMS,GIoU-NMS改进

💡该教程为属于《芒果书》📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡本篇文章为YOLOv8独家原创改进:原创改进创新点 DIoU-NMS,SIoU-NMS,EIoU-NMS,CIoU-NMS,GIoU-NMS改进。 💡对自己数据集改进有效的话,可以直接当做自己的原创改…

机器学习笔记之最优化理论与方法(二)凸集的简单认识(上)

机器学习笔记之最优化理论与方法——凸集的简单认识[上] 引言凸优化问题与凸集合凸函数的关系凸优化问题简单示例凸集的简单示例 基本定义&#xff1a;凸集关于凸集性质的等价条件&#xff0c;凸组合&#xff0c;凸包常见凸集 引言 本节将介绍关于凸集的基本信息&#xff0c;包…

【Java】基础入门 (十六)--- 异常

1.异常 1.1 异常概述 异常是指程序在运行过程中出现的非正常的情况&#xff0c;如用户输入错误、除数为零、文件不存在、数组下标越界等。由于异常情况再程序运行过程中是难以避免的&#xff0c;一个良好的应用程序除了满足基本功能要求外&#xff0c;还应具备预见并处理可能发…

青翼科技基于VITA57.1的16路数据收发处理平台产品手册

FMC211是一款基于VITA57.1标准规范的实现16路LVDS数据采集、1路光纤数据收发处理FMC子卡模块。 该板卡支持2路CVBS&#xff08;复合视频&#xff09;视频输入&#xff0c;能够自动检测标准的模拟基带电视信号&#xff0c;并将其转变为8位ITU-R.656接口信号或者4:2:2分量视频信…

Qt网络通信——获取本机网络信息

查询一个主机的MAC地址或者IP地址是网络应用中常用到的功能&#xff0c;Qt提供了QHostInfo和QNetworkInterface 类可以用于此类信息的查询 1.QHostInfo 类&#xff08;显示和查找本地的信息&#xff09;是的主要函数 类别 函数原型作用公共函数QList <QHostAdress> addr…

读<一例 Go 编译器代码优化 bug 定位和修复解析>

看到一例 Go 编译器代码优化 bug 定位和修复解析[1]这样一篇文章,感觉有些意思. 在此复现和记录 在Go 1.16版本下,是没有这个bug[2]的(已修复). 参照gvm:灵活的Go版本管理工具[3] 将Go版本切至有问题的1.13.5(或1.14.6) ➜ go versiongo version go1.13.5 darwin/amd64 packag…

Node常用内置模块之url模块和querystring模块

1、URL类 url模块在v16的nodejs中已经明确被废弃&#xff0c;在将来的升级node中&#xff0c;可能被不支持。 官网建议在废弃url、querystring模块后&#xff0c;采用URL类去替代。 图示 URL 各部分 旧版的url模块 作用&#xff1a;url 模块是用于处理和解析 URL 的模块&…

Unity ShaderGraph教程——基础shader

1.基本贴图shader&#xff1a; 基础贴图实现&#xff1a;主贴图、自发光贴图、光滑度贴图、自发光贴图&#xff08;自发光还加入了颜色影响和按 钮开关&#xff09;. 步骤&#xff1a;最左侧操作组——新建texture2D——新建sample texture 2D承…

Linux上部署zentao禅道18.6版本

1. cd /opt 2. 下载 ZenTaoPMS-18.6-zbox_amd64.tar.gz wget https://dl.cnezsoft.com/zentao/18.6/ZenTaoPMS-18.6-zbox_amd64.tar.gz 3. 解压 tar -zxvf ZenTaoPMS-18.6-zbox_amd64.tar.gz 4. 解压成功, 可以看到多了个zbox文件 5. cd zbox/ 进入该目录 6. 修改apache默认…

乙酰基六肽-18——刺激脂肪合成,增加指定部位脂肪,塑造完美曲线

简介 乙酰六肽-18&#xff08;丰胸肽&#xff09;为一种乙酰化的六肽&#xff0c;可显著刺激使用部位脂肪合成&#xff0c;增大胸部或脸颊的体积&#xff0c;塑造完美身材。 INCI 名称 乙酰六肽-18 分子式 C30H54N9O10 分子量 700.32 CAS号 1400634-44-7…

WPF_布局基础

布局容器 Grid 定义由列和行组成的灵活的网格区域。 行 <Grid.RowDefinitions><RowDefinition/><RowDefinition/></Grid.RowDefinitions> 列 <Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDe…

免费开源MES系统|自动排产管理

万界星空科技免费MES系统助力企业实现生产排程自动化&#xff0c;降低人力成本。生产计划排产管理是指制定一个可行的生产计划并按照该计划安排生产资源和制造活动的过程。 它是制造企业管理中的一个关键过程&#xff0c;涉及到计划制定、资源管理、物料采购、工厂布局、生产调…

手搓的一款基于sql脚本的数据初始化组件

产口孵化新项目时&#xff0c;表中需要提前预置部份数据。如字典&#xff0c;角色、菜单、配置等。以达到快速布署的目的。这部份数据会随着某些因素的影响。如地区变化、系统定制方面。无法使用统一的一份sql。旧方案是在代码里面动态的作insert操作。在项目启动的时候初始化这…

IPIDEA确认参加2023 CCEE(深圳)雨果跨境全球电商展览会

9月1日—9月3日&#xff0c;雨果跨境将在深圳会展中心&#xff08;福田&#xff09;举办 “2023CCEE&#xff08;深圳&#xff09;雨果跨境全球电商展览会”。 届时&#xff0c;IPIDEA将参加此次跨境年度盛会。作为一家专业的全球HTTP代理商&#xff0c;IPIDEA为与会商家准备了…

MES管理系统数据建模有哪些注意事项

在进行MES管理系统数据建模时&#xff0c;需要注意以下几个方面&#xff0c;以确保建立高效、可靠且适应性强的数据模型&#xff0c;为企业的生产管理提供有力的支持。 首先&#xff0c;精确理解业务需求是进行数据建模的前提。与相关部门和人员进行充分的沟通&#xff0c;了解…

基于web的图书管理系统java书店进销存 jsp源代码Mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于web的图书管理系统 系统有1权限:管理员 二、主要…