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

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

文章目录

    • 需求
    • 分析
    • 解决

需求

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.lryc.cn/news/146228.html

相关文章:

  • windows系统配置tcp最大连接数
  • SQL存储过程中 SET ANSI_NULLS ON 和 SET QUOTED_IDENTIFIER ON的作用和详解
  • C语言——程序执行的三大流程
  • 二级MySQL(十)——单表查询
  • 机器学习:无监督学习
  • 计算机网络之5层网络协议
  • 常见前端面试之VUE面试题汇总十一
  • 2021年12月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 解决 git clone 时出现Failed to connect to 127.0.0.1 port 1573问题
  • 日本核污染水排海,有必要囤盐吗?
  • windows 10自带命令查看文件的哈希值
  • ssm+vue理发店会员管理系统源码和论文
  • Python的for循环
  • 爬虫逆向实战(二十七)--某某招标投标网站招标公告
  • 线程和之间的通讯方式、进程之间的通讯方式、线程之间如何同步
  • CRM线索公海如何管理?
  • 创建web应用程序,React和Vue怎么选?
  • 【每日一题】1267. 统计参与通信的服务器
  • Python入门教程29:字符串前加r、u、b、f是什么意思?
  • java8 IntStream.range
  • 数据库集群的简单了解
  • CSS中如何实现文字阴影效果(text-shadow)?
  • Nginx从入门到精通(超级详细)
  • 为何反射探针关闭Mipmap后变成了白图
  • 成都睿趣科技:抖音开网店前期的流程是什么
  • 机房安全之道:构筑坚固的网络防线
  • 使用GoLand进行远程调试
  • C++通过JNI调用JAVA方法返回ArrayList对象
  • .netcore grpc截止时间和取消详解
  • React组件间数据传递(弹框和高阶组件(HOC)特性实现)