cesium三维地图
基础
地图初始化
const viewer = new Viewer(mapRef.value, {
animation: false, // 时间动画控件
timeline: false, // 时间轴
selectionIndicator: false,
infoBox: false,
baseLayerPicker: false,
terrainProvider: createWorldTerrain()
})
颜色
Cesium.Color.RED
Cesium.Color.RED.withAlpha(0.1) // 透明度
Cesium.Color.fromCssColorString('#67ADDF') // hex颜色
Cesium.Color.freeRandom() // 随机颜色
点绘制
viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(Number(lng), Number(lat)),
billboard: {
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, // 贴地
image: new Cesium.PinBuilder().fromText(
'P',
Cesium.Color.fromRandom({ alpha: Math.random() * 0.2 + 0.8 }),
40 // 图标大小
)
}
})
线绘制
viewer.entities.add({
polyline: {
positions: Cesium.Cartesian3.fromDegreesArray(y),
clampToGround: true, // 贴地
material: Cesium.Color.YELLOW
}
})
面绘制
viewer.entities.add({
polygon: {
hierarchy: Cesium.Cartesian3.fromDegreesArray(y),
clampToGround: true, // 贴地
material: Cesium.Color.BLUE.withAlpha(0.4)
}
})
视距元素显示
// 当视点距离在0-60000米时显示
{
distanceDisplayCondition: new DistanceDisplayCondition(0, 60000)
}
进阶
矢量点位渲染
const pointPrimitives = viewer.scene.primitives.add(new Cesium.PointPrimitiveCollection())
points.forEach(({ lng, lat }: any, idx: number) => {
const position = Cesium.Cartesian3.fromDegrees(Number(lng), Number(lat))
pointPrimitives.add({
pixelSize: 5,
color: Cesium.Color.GREEN,
outlineColor: Cesium.Color.BLACK,
outlineWidth: 0,
position
})
})
视图
viewer.flyTo(viewer.entities)
本文作者:sineava
本文链接:https://www.cnblogs.com/sineava/p/18112822
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律