Cesium entity画各种图(十六)
在官方示例的沙盒里写东西是真方便
Cesium中有两种对象可以添加到场景中,Entity、Primitive。Entity对用户更友好,方便使用,但是灵活性和性能差一些。Primitive,支持自定义几何形状和几何对象的材质,可以实现更复杂的效果。
1.polygon(面)
var square = this.viewer.entities.add({
id:8,
position:new Cesium.Cartesian3.fromDegrees(103.8621, 30.7065,495),
polygon:{
show: true,//是否可见
hierarchy: Cesium.Cartesian3.fromDegreesArray([
110.0,
30.0,
120.0,
30.0,
115.0,
40.0,
]),//多边形的点坐标
height: 50000,//相对于椭球的高度,多边形的高程,单位米
//即便hierarchy设置了高程,只要perPositionHeight: false(默认),多边形都会以height作为高程值,默认值为0
// perPositionHeight: false,//是否使用hierarchy中的高度
extrudedHeight: 0,//挤出高度,多边形的外扩高程,默认值为0,当值不为0时,可形成多边形棱柱,即polygon可用来绘制几何体
//这里不知道为什么extrudedHeight为0的时候还是有高度,只有将其注释掉才没高度
material: Cesium.Color.CYAN,
outline: true,//是否显示轮廓线
outlineColor: Cesium.Color.RED,//轮廓线颜色
outlineWidth: 5.0,//轮廓宽度
closeTop: false,//如果为false,则挤出多边形的顶部将保持打开状态
closeBottom: true,//如果为false,则挤出多边形的底部将保持打开状态
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(100.0)//基于到摄影机的距离确定可见性,在100-2000000米的距离范围内可见
},
})
2.polylineVolume(管道)
因为是Cartesian2,所以只能往上下两个方向挤出,也就决定了不能生成竖直的管道,否则是没厚度的
const redTube = viewer.entities.add({
name: "Red tube with rounded corners",
polylineVolume: {//管道线坐标
positions: Cesium.Cartesian3.fromDegreesArray([
-85.0,
32.0,
-85.0,
36.0,
-89.0,
36.0,
]),
shape: [//决定如何挤出,也就是管道的形状
//因为是Cartesian2,所以只能往上下两个方向挤出,也就决定了不能生成竖直的管道,否则是没厚度的
new Cesium.Cartesian2(-50000, -50000),
new Cesium.Cartesian2(50000, -50000),
new Cesium.Cartesian2(50000, 50000),
new Cesium.Cartesian2(-50000, 50000),
],
material: Cesium.Color.RED.withAlpha(0.5),//材料颜色
cornerType: Cesium.CornerType.BEVELED,//转角形状,默认是圆转角
fill:true,//是否中心有材料,也就是是否不是中空
outline: true,
outlineColor: Cesium.Color.BLACK,
},
});

3.polyline(线)
function computeCircle(radius) {
const positions = [];
for (let i = 0; i < 360; i++) {
const radians = Cesium.Math.toRadians(i);
positions.push(
new Cesium.Cartesian3(
radius * Math.cos(radians),
0,
radius * Math.sin(radians),
)
);
}
return positions;
}
const line = viewer.entities.add({
name: "Red tube with rounded corners",
polyline: {
positions: computeCircle(10000000),
wodth:5,
material:new Cesium.PolylineDashMaterialProperty({//虚线
color: Cesium.Color.YELLOW,
dashLength: 20, //短划线长度pixel
gapColor:Cesium.Color.TRANSPARENT,//空隙颜色
}),
}
});
viewer.zoomTo(viewer.entities);

4.box(盒子)
const blueBox = viewer.entities.add({
name: "Blue box",
position: Cesium.Cartesian3.fromDegrees(-114.0, 40.0, 300000.0),//中心点位置
box: {
dimensions: new Cesium.Cartesian3(400000.0, 300000.0, 600000.0),//指定长宽高
material: Cesium.Color.BLUE,
outline: true,//是否显示轮廓线
fill: true,//是否填充
},
});

5.Corridor(走廊)
const redCorridor = viewer.entities.add({
name: "Red corridor on surface with rounded corners",
corridor: {
//fromDegreesArrayHeights的高度无效,只能用height属性
positions: Cesium.Cartesian3.fromDegreesArray([
-100.0,
40.0,
-105.0,
40.0,
-105.0,
35.0,
]),
height:100000,//高度
width: 200000.0,//宽度
extrudedHeight:10000,//挤出高度,也就是通道的高度
cornerType: Cesium.CornerType.ROUNDED,//转角样式
material: Cesium.Color.RED.withAlpha(0.5),
heightReference:Cesium.HeightReference.NONE//贴地或是其他
},
});

6.cylinder(圆柱,圆锥)
描述由长度、顶部半径和底部半径定义的圆柱体、截头圆锥体或圆锥体。中心位置和方向由包含实体确定。
const redCorridor = viewer.entities.add({
name: "Red corridor on surface with rounded corners",
position: new Cesium.Cartesian3.fromDegrees(119.999, 30, 200),
cylinder: {
topRadius:80000,//顶部半径
bottomRadius:80000,//底部半径
length:100000,//高度
slices:10,//圆柱体周长周围的边数
numberOfVerticalLines:5,//指定沿轮廓周长绘制的垂直线的数量
material: Cesium.Color.RED.withAlpha(0.5),
heightReference:Cesium.HeightReference.RELATIVE_TO_GROUND,//贴地或是其他
outline:true,//是否显示轮廓
outlineColor:Cesium.Color.BLUE,
outlineWidth:100,
},
});

7.label(标签)
viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(-75.1641667, 39.9522222),
label: {
text: "Philadelphia",//文本内容
font: "24px Helvetica",//css font
fillColor: Cesium.Color.SKYBLUE,//填充颜色
outlineColor: Cesium.Color.BLACK,//轮廓颜色
outlineWidth: 2,//轮廓宽度
//控制字的填充和轮廓,有以下三种
// FILL Fill the text of the label, but do not outline.
//OUTLINE Outline the text of the label, but do not fill.
//FILL_AND_OUTLINE Fill and outline the text of the label.
style: Cesium.LabelStyle.FILL_AND_OUTLINE,
scale:2,//字体的比例
showBackground:false,//能不能看见背景,并不是指字体透不透明,而是字体那块板子可不可见
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,//字偏左偏右居中
pixelOffset: new Cesium.Cartesian2(0,0),//往原位置右下方向偏移的像素
pixelOffsetScaleByDistance: new Cesium.NearFarScalar(
1.5e2,
0.5,
1.5e7,
0.5
),//根据距相机的距离设置像素偏移。
translucencyByDistance: new Cesium.NearFarScalar(
1.5e3,
1.0,
1.5e8,
0.0
),//根据距离设置透明度,也就是渐变
scaleByDistance: new Cesium.NearFarScalar(1.5e3, 2.0, 1.5e7, 0.5),//根据距离缩放scale
distanceDisplayCondition : new Cesium.DistanceDisplayCondition(1e3, 1e10),//在什么范围内标签会显示,根据标签地名的等级进行设置,大等级的比如市名,第一个参数就设置大些
},
});

持续更新中
Cesium entity画各种图(十六)的更多相关文章
- ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
ASP.NET MVC深入浅出系列(持续更新) 一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...
- 程序员编程艺术第三十六~三十七章、搜索智能提示suggestion,附近点搜索
第三十六~三十七章.搜索智能提示suggestion,附近地点搜索 作者:July.致谢:caopengcs.胡果果.时间:二零一三年九月七日. 题记 写博的近三年,整理了太多太多的笔试面试题,如微软 ...
- 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/16384009 作者:毛星云 ...
- ng机器学习视频笔记(十六) ——从图像处理谈机器学习项目流程
ng机器学习视频笔记(十六) --从图像处理谈机器学习项目流程 (转载请附上本文链接--linhxx) 一.概述 这里简单讨论图像处理的机器学习过程,主要讨论的是机器学习的项目流程.采用的业务示例是O ...
- 第十六届“二十一世纪的计算”学术研讨会 牛津大学肿瘤成像学教授Michael Brady主题演讲
Computing and Healthcare 牛津大学肿瘤成像学教授Michael Brady主题演讲" title="第十六届"二十一世纪的计算"学术研讨 ...
- Web 前端开发人员和设计师必读精华文章【系列二十六】
<Web 前端开发精华文章推荐>2014年第5期(总第26期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
- 【Java Saves!】Session 6:十六指星人
前面说,计算机用2个手指头数数,它内部的数是二进制,有0和1两个数字.也看到,对于人来说,二进制数too long, too inconvenient, sometimes troublesome.程 ...
- NeHe OpenGL教程 第三十六课:从渲染到纹理
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第二十六课:反射
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
随机推荐
- Java阻塞队列中的异类,SynchronousQueue底层实现原理剖析
上篇文章谈到BlockingQueue的使用场景,并重点分析了ArrayBlockingQueue的实现原理,了解到ArrayBlockingQueue底层是基于数组实现的阻塞队列. 但是Blocki ...
- AR手势识别交互,让应用更加“得心应手”
现如今, AR技术不断发展,人们不再满足于运用键盘.鼠标等简单器械来实现传统的人机交互模式.随着用户接触机器的多样化,繁琐的操作不但对一些用户有门槛,而且还增加其学习成本:如果能用自然且符合日常生活习 ...
- 关于mysql命令的学习
前言 这篇文章我不会具体说明哪些操作有哪些命令,我只说明这些命令的记忆方法.其实知道原理后,这些命令尽管多,但都是有据可循的 mysql提示符 可以通过登录时加入 –prompt 提示符内容 参数 登 ...
- Kubernetes专栏 | 安装部署(一)
--随着云原生概念的普及,许多企业的业务纷纷上云,为了追求可靠性,稳定性,和弹性伸缩,提升资源利用率等需求.Kubernetes这个谷歌开源的容器编排平台已日益流行,被大家熟知和使用. 通常来说,Ku ...
- 【vue3】element-plus,Checkbox-Group多选框之绑定选中数据不选中问题
今天记录一下在新项目vue3中,使用的element-plus组价库遇到的一个问题!场景如下:有一个表格的column绑定的数组对象,我需要对表格的头部实现动态可配置显示表格列,由于绑定的column ...
- 实用!7个强大的Python机器学习库!⛵
作者:韩信子@ShowMeAI 机器学习实战系列:https://www.showmeai.tech/tutorials/41 本文地址:https://www.showmeai.tech/artic ...
- jquerylib表单
用jquerylib,实现表格添加内容和删除内容 <!DOCTYPE html> <html> <head> <meta charset="UTF- ...
- python与数值计算环境安装
数值计算的编程的软件很多种,也见过一些编程绘图软件的对比. 利用Python进行数值计算,需要用到numpy(矩阵) ,scipy(公式符号), matplotlib(绘图)这些工具包. 1.Linu ...
- org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive
昨天23点给一个老项目改完打包发布到云服务器后报错,Tomcat9 启动不了,白折腾了我几个小时. 这错误以前遇到过,由于太过久远已经忘记,特此记录 错误日志 22-Dec-2021 23:52:18 ...
- SwiftUI(一)
macOS 11.4 Xcode 12.5.1 1.新建工程,创建一个swiftui文件 2.创建后有些画布是在下面显示的 3.先来看下效果图 4. CardImageView.swi ...