Cesium三维地球上添加点、线、⾯、⽂字、图标(图⽚)、模型等标绘
添加标绘之前要明⽩⼀点:Cesium Entity是可以与样式化图形表⽰配对并定位在空间和时间上的数据对象,或者说Cesium 提供 Entity API 来绘制控件数据。所以我们添加的所有标绘都是entity
Entity API简介
Cesium提供两类API:
1. ⾯向图形开发⼈员的底层API,通常称为“Primitive API”。该API暴露最⼩限度的抽象,使⽤图形学术语,具有很⼤的灵活性,需要
具有图形学编程的知识。
2. ⾼级别的数据驱动的API,称为“Entity API”。该API使⽤⼀致性设计的、⾼级别的对象,来管理⼀组相关性的可视化对象,其底层
使⽤Primitive API。
形状与⽴体(Shapes and Volumes)
/
/entities.add(entity)
// fromDegrees(经度,纬度,⾼度,椭球,结果)从以度为单位的经度和纬度值返回Cartesian3位置
position: Cesium.Cartesian3.fromDegrees(108,34,10),
point:{
// 点的⼤⼩(像素)
pixelSize:5,
// 点位颜⾊,fromCssColorString 可以直接使⽤CSS颜⾊
color: Cesium.Color.fromCssColorString('#ee0000'),
// 边框颜⾊
outlineColor: Cesium.Color.fromCssColorString('#fff'),
/
/ 边框宽度(像素)
outlineWidth:2,
// 是否显⽰
show:true
}
});
polyline:{
// fromDegrees返回给定的经度和纬度值数组(以度为单位),该数组由Cartesian3位置组成。
positions: Cesium.Cartesian3.fromDegreesArray([
120.9677706,30.7985748,
110.20,34.55
]),
// 宽度
width:2,
// 线的颜⾊
material: Cesium.Color.WHITE,
// 线的顺序,仅当`clampToGround`为true并且⽀持地形上的折线时才有效。
zIndex:10,
// 是否显⽰
show:true
}
});
polygon:{
// 获取指定属性(positions,holes(图形内需要挖空的区域))
hierarchy:{
positions: Cesium.Cartesian3.fromDegreesArray([
120.9677706,30.7985748,
110.20,34.55,
120.20,50.55
]),
holes:[{
positions: Cesium.Cartesian3.fromDegreesArray([
119,32,
115,34,
119,40
])
}]
},
// 边框
outline:true,
// 边框颜⾊
outlineColor: Cesium.Color.WHITE,
// 边框尺⼨
outlineWidth:2,
// 填充的颜⾊,withAlpha透明度
material: Cesium.Color.GREEN.withAlpha(0.5),
// 是否被提供的材质填充
fill:true,
// 恒定⾼度
height:5000,
// 显⽰在距相机的距离处的属性,多少区间内是可以显⽰的
distanceDisplayCondition:new Cesium.DistanceDisplayCondition(1000,10000000), // 是否显⽰
show:true,
// 顺序,仅当`clampToGround`为true并且⽀持地形上的折线时才有效。
zIndex:10
}
});
position: Cesium.Cartesian3.fromDegrees(120,30,5),
// 点
point:{
color: Cesium.Color.RED,// 点位颜⾊
pixelSize:10// 像素点⼤⼩
},
// ⽂字
label:{
/
/ ⽂本。⽀持显式换⾏符“ \ n”
text:'测试名称',
// 字体样式,以CSS语法指定字体
font:'14pt Source Han Sans CN',
// 字体颜⾊
fillColor: Cesium.Color.BLACK,
// 背景颜⾊
backgroundColor: Cesium.Color.AQUA,
// 是否显⽰背景颜⾊
showBackground:true,
// 字体边框
outline:true,
// 字体边框颜⾊
outlineColor: Cesium.Color.WHITE,
// 字体边框尺⼨
outlineWidth:10,
// 应⽤于图像的统⼀⽐例。⽐例⼤于会1.0放⼤标签,⽽⽐例⼩于会1.0缩⼩标签。
scale:1.0,
// 设置样式:FILL:填写标签的⽂本,但不要勾勒轮廓;OUTLINE:概述标签的⽂本,但不要填写;FILL_AND_OUTLINE:填写并概述标签⽂本。 style: Cesium.LabelStyle.FILL_AND_OUTLINE,
// 相对于坐标的⽔平位置
verticalOrigin: Cesium.VerticalOrigin.CENTER,
// 相对于坐标的⽔平位置
horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
// 该属性指定标签在屏幕空间中距此标签原点的像素偏移量
pixelOffset:new Cesium.Cartesian2(10,0),
// 是否显⽰
show:true
}
});
position: Cesium.Cartesian3.fromDegrees(110.20,34.55,2.61),
billboard:{
// 图像地址,URI或Canvas的属性
image:'/location.png',
/
/ 设置颜⾊和透明度
color: Cesium.Color.WHITE.withAlpha(0.8),
// ⾼度(以像素为单位)
height:50,
// 宽度(以像素为单位)
width:50,
// 逆时针旋转
rotation:20,
// ⼤⼩是否以⽶为单位
sizeInMeters:false,
// 相对于坐标的垂直位置
verticalOrigin: Cesium.VerticalOrigin.CENTER,
// 相对于坐标的⽔平位置
horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
// 该属性指定标签在屏幕空间中距此标签原点的像素偏移量
pixelOffset:new Cesium.Cartesian2(10,0),
// 应⽤于图像的统⼀⽐例。⽐例⼤于会1.0放⼤标签,⽽⽐例⼩于会1.0缩⼩标签。
scale:1.0,
position标签属性// 是否显⽰
show:true
}
});
// 设置⽅向
orientation: orientation,
position: Cesium.Cartesian3.fromDegrees(120,30,10000),
model:{
// 引⼊模型
uri:'/SampleData/models/CesiumAir/Cesium_Air.glb',
// 模型的近似最⼩像素⼤⼩,⽽不考虑缩放。这可以⽤来确保即使观看者缩⼩也可以看到模型。如果为0.0,则不强制使⽤最⼩⼤⼩ minimumPixelSize:1280,
// 模型的颜⾊(与模型的渲染颜⾊混合的属性)
color: Cesium.Color.WHITE.withAlpha(1),
// 模型的最⼤⽐例⼤⼩
maximumScale:20000,
// 设置模型轮廓(边框)颜⾊
silhouetteColor: Cesium.Color.BLACK,
// 设置模型轮廓(边框)⼤⼩
silhouetteSize:2,
// 是否执⾏模型动画
runAnimations:true,
// 应⽤于图像的统⼀⽐例。⽐例⼤于会1.0放⼤标签,⽽⽐例⼩于会1.0缩⼩标签。
scale:1.0,
// 是否显⽰
show:true
}
});
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论