第六章 Cesium学习入门之添加Geojson数据(dataSource)

这篇具有很好参考价值的文章主要介绍了第六章 Cesium学习入门之添加Geojson数据(dataSource)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

从0开始的Cesium

第一章 Cesium学习入门之搭建Vite+Vue3+Cesium开发环境
第二章 Cesium学习入门之搭建Cesium界面预览和小控件隐藏
第三章 Cesium学习入门之地形数据(DEM)的加载
第四章 Cesium学习入门之加载离线影像图(tif)
第五章 Cesium学习入门之加载影像WMTS切片服务(ArcGIS/Geowebcache)
第六章 Cesium学习入门之添加Geojson数据(dataSource)



前言

在Cesium场景中添加三维图元的方式有很多种,包括entity,dataSource,primitive,本文将着重讲解cesium中GeoJson(dataSource)数据的处理

一、添加GeoJSON数据并自定义修改

1.添加GeoJson数据

viewer.dataSources.add(
    Cesium.GeoJsonDataSource.load(url, //要加载的 url、GeoJSON 对象或 TopoJSON 对象。
        {
            stroke: Cesium.Color.HOTPINK, //折线和多边形轮廓的默认颜色。
            fill: Cesium.Color.PINK.withAlpha(0.5), //多边形内部的默认颜色。
            strokeWidth: 3, //折线和多边形轮廓的默认宽度。
        }
    )
);

其中options参数在下图
第六章 Cesium学习入门之添加Geojson数据(dataSource),webgis-cesium,学习,javascript,前端

2.添加GeoJson数据并自定义修改

在开发过程中,经常会遇到根据GeoJson数据添加图片和文字注记类似的需求,一般来说,直接添加GeoJson数据cesium只会定义一种entity类型,所以我们需要按照需求自定义添加文章来源地址https://www.toymoban.com/news/detail-601274.html

const promise = Cesium.GeoJsonDataSource.load(url)  //读取geojson数据

    promise.then((dataSource) => {
        const entities = dataSource.entities.values //获取dataSource中的entitis集合 
        for (const key in entities) {
            const entity = entities[key]  //遍历集合中每一个实体entity,按照不同的类型去自定义修改
            if (entity.polyline) {  //如果是线数据类型
                const entitiyColor = Cesium.Color.fromBytes(red,green,blue)  //根据rbg颜色转换成cesium支持的颜色
                entity.polyline.material = entitiyColor //复制到线材质  
                entity.polyline.outline = false;  //取消外轮廓
                entity.polyline.clampToGround = true  //贴地线
                viewer.zoomTo(entity) //定位到实体
            } else if (entity.billboard) {
                entity.billboard = {
                    image: "img/gis.png", //修改图片样式
                    scale: 0.5,  //图片缩放大小
                    heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,  //贴地设置
                    horizontalOrigin: Cesium.HorizontalOrigin.CENTER, // //相对于对象的原点(注意是原点的位置)的水平位置
                    verticalOrigin: Cesium.VerticalOrigin.BOTTOM //相对于对象的原点的垂直位置,BOTTOM时锚点在下,对象在上
                }
                entity.label = {
                    text: entity.name,  //文字描述
                    font: '10pt Source Han Sans CN',    //字体样式
                    fillColor: Cesium.Color.BLACK,        //字体颜色
                    backgroundColor: Cesium.Color.AQUA,    //背景颜色
                    showBackground: true,                //是否显示背景颜色
                    style: Cesium.LabelStyle.FILL,        //label样式
                    outlineWidth: 2,  //外轮廓宽度
                    verticalOrigin: Cesium.VerticalOrigin.CENTER,//垂直位置
                    horizontalOrigin: Cesium.HorizontalOrigin.LEFT,//水平位置
                    pixelOffset: new Cesium.Cartesian2(20, 0),//偏移
                    // distanceDisplayCondition: new Cesium.DistanceDisplayCondition(10.0, 20000000.0),
                    scaleByDistance: new Cesium.NearFarScalar(1000, 1, 20000000, 1.5),
                    // eyeOffset: new Cesium.Cartesian3(0, 0, -10000),
                    disableDepthTestDistance: Number.POSITIVE_INFINITY,//一个属性,指定从相机到该距离时禁用深度测试的距离
                    heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, //贴地设置
                } 
            }

二、移除GeoJson(datasource)数据

1.从集合中移除一个datasource

viewer.dataSources.remove(datasource) //要删除的数据源。

2.移除所有datasource

viewer.dataSources.removeAll()

到了这里,关于第六章 Cesium学习入门之添加Geojson数据(dataSource)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VUE3-Cesium(加载GeoJSON数据)

    目录 一、准备工作 1、新建vue项目 解决报错:使用nvm后找不到vue -V找不到版本 2、安装Cesium插件 3、安装 Element Plus、unplugin-vue-components 和 unplugin-auto-import 4、按需自动导入element-plus 测试按需自动导入element-plus是否配置成功 二、项目代码部分 1、引入sichuan.json文件 2、配置main

    2024年02月11日
    浏览(39)
  • 第六章:L2JMobius学习 – 源码讲解网络数据通信

    本章节介绍客户端和服务器端的网络数据通信,使用的技术是Java NIO(也就是套接字Socket)。服务器端和客户端使用Socket通信的原因在于,它是双向的,持久的。也就是说,服务器端可以随时的向客户端发送数据,客户端也可以随时的向服务端发送数据。 请注意,不同于HTT

    2024年02月15日
    浏览(42)
  • Nmap入门到高级【第六章】

    Nmap基础知识 1.1 Nmap简介和历史 1.2 Nmap安装和使用方法 1.3 Nmap扫描技术和扫描选项 Nmap扫描技术 2.1 端口扫描技术 2.2 操作系统检测技术 2.3 服务和应用程序检测技术 2.4 漏洞检测技术 Nmap扫描选项 3.1 扫描类型选项 3.2 过滤器选项 3.3 探测选项 3.4 输出选项 Nmap脚本引擎 4.1 Nmap脚本

    2023年04月23日
    浏览(45)
  • ChatGPT入门到高级【第六章】

    第一章:Chatgpt的起源和发展 1.1 人工智能和Chatbot的概念 1.2 Chatbot的历史发展 1.3 机器学习技术在Chatbot中的应用 1.4 Chatgpt的诞生和发展 第二章:Chatgpt的技术原理 2.1 自然语言处理技术 2.2 深度学习技术 2.3 Transformer模型 2.4 GPT模型 第三章:Chatgpt的应用场景 3.1 智能客服 3.2 智能问

    2024年02月04日
    浏览(34)
  • Odoo17入门教程第六章 UI

    现在我们已经创建了新模型及其 相应的,是时候了 与用户界面交互。 在本章结束时,我们将创建几个菜单以访问默认列表 和窗体视图。 参考 :与此主题相关的文档可以在数据文件中找到。 在第五章:安全性-简介中,我们通过 CSV 文件添加了数据。CSV 当要加载的数据具有

    2024年04月23日
    浏览(46)
  • 小黑子—Java从入门到入土过程:第六章

    1.1 文字版格斗游戏= 1.简单版 User类包 GameTest类包 参数占位,格式化输出回顾 关于printf和print和println的区别 print为一般输出,同样不能保留精度格式转化,也不能换行输出 printf常用于格式转换,但需要注意不是换行输出,只用于精度转换 println为换行输出,不能用于格式转换

    2023年04月16日
    浏览(52)
  • Unity Shader入门精要 第六章——Unity中的基础光照

    目录 一、标准光照模型(Phong光照模型) 1、环境光  2、自发光 3、漫反射 4、高光反射 (1)Phong模型 (2)Blinn模型 5、光照模型实现方法——逐顶点和逐像素 二、Unity Shader 漫反射光照模型的实现 1、实践:逐顶点 2、实践:逐像素 3、半兰伯特模型 4、漫反射光照模型效果展

    2024年02月04日
    浏览(48)
  • 数据结构:第六章 图

    ps:图不可以为空图。 对于图中的边,两头必须要有结点。 边集是可以没有的,如上图最右边。 关于无向图和有向图的应用如下 比如你微信里的好友关系,你要和一个人建立关系(也就是图的两个结点连上),你只需要加1次就可以了,也不需要你加我,我还要加你。 具体

    2024年02月14日
    浏览(44)
  • 《数据结构》王道 第六章 图

    2.1.1 邻接矩阵存储带权图(网) 2.1.2 邻接矩阵的性能分析 2.1.3 邻接矩阵的性质 以此类推,可以得到A 2 的矩阵。 A 3 也是同样的道理,则表示A[i][j] 由 i 到 j 路径长度为3的路径数目。 这种存储图的方法其实跟树的孩子表示法有点相似。 邻接矩阵存储无向图时,一条边会有两

    2024年02月01日
    浏览(43)
  • 第六章:进制转换与数据存储

    进制转换是程序员的基本功。 进制 组成 二进制 0-1 ,满2进1以0b或0B开头 十进制 0-9 ,满10进1 八进制 0-7,满8进1以数字0开头表示 十六进制 0-9及A(10)-F(15),满16进1以0x或0X开头表示,此处的 A-F 不区分大小写 进制转换 转换方式 二进制转十进制 从最低位(右边)开始, 将每个位上

    2024年02月05日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包