本文概述
本文主要介绍如何通过CesiumEarth手工绘制建筑底面,设置建筑高度,按颜色区分类别,形成可查询每一栋建筑信息的三维场景,场景搭建时间只需1小时,若具备现成的城市建筑底面数据,直接导入CesiumEarth并调整相应的参数,半小时即可搭建城市建筑模型的三维演示场景
场景效果
城市建筑白模三维场景效果如下
点击建筑白模可查询信息
一、进入CesiumEarth并默认加载基础图层
从首页点击进入三维地球(加载默认图层)
默认图层包含天地图影像、天地图注记、CesiumIon地形三个图层
二、绘制建筑底面数据
新建矢量图层
输入图层名称,选择新建数据,设置矢量类型为面,输入字段名称(名称,简介,高度,颜色)
添加建筑底面
选中建筑信息图层,点击矢量图层属性,点击添加要素
在编辑属性选项卡中输入要素对应的属性内容,并在高度和颜色字段中设定白模的高度和颜色值
在编辑图形选项卡中绘制建筑底面,右键结束编辑,点击确认后添加完毕
若想白模更加精细,只需在绘制底面时勾勒出更多的线条即可
若以正射影像作为地图参考,绘制出的白模精度更高
三、调整矢量面参数
默认参数下,面仅仅以多边形面的形式渲染,此时需要对渲染模式进行更改
使二维面变成三维立体模型
选中建筑信息图层,点击设置按钮,调出图层设置界面
按如下参数进行调整,给模型赋予高度,变成三维立体模型
二维面变成三维立体模型
polygonOutlineShow = 1 polygonExtrudedHeight = 10:高度 polygonPerPositionHeight = 1
给模型赋予颜色
此时模型默认颜色为白色透明,此处将模型的颜色从字段中读取,字段中可按建筑类型赋予不同的颜色
本例中颜色值已经在矢量图层数据中事先进行的预设,具体如下
预设的颜色值
工业区=#ffcccc 住宅区=#ccccff 商业区=#ccffcc
在图层设置中,按如下参数进行调整
赋予颜色
polygonColor = #FFFFFF:颜色 polygonOutlineColor = #FFFFFF:颜色
此时已完成城市建筑白模的场景搭建
点击某一栋白模可查看建筑信息
三、显示名称
每一栋建筑白模可选择是否显示名称,只需开启label功能,参数如下
显示名称
labelShow = 1 labelField = 名称 labelFillColor = #FF0000:颜色
全部体块显示名称信息,会显得有些杂乱,此时可以在图层中增加字段,动态控制labelShow参数
显示名称
labelShow = 1:显示名称
附上本场景的cedb数据
直接复制cedb数据,可浏览查看,同时也支持移动端查看
CesiumEarth官网地址: http://www.cesiumearth.com PC端地址如下:CesiumEarth|数字孪生三维引擎 移动端地址如下: http://m.cesiumearth.com
[{"title":"天地图","children":[{"title":"卫星影像","url":"http://{s}.tianditu.com/DataServer?T=img_w&X={x}&Y={y}&L={z}&tk=0f84da9fd48038ea3bd8de15ff9fb4c2","subdomains":["t0","t1","t2","t3","t4","t5","t6","t7"],"checked":false,"type":"ImageryURL","format":"image/jpeg","tileMatrixSetID":"GoogleMapsCompatible","key":"on0yqe9mbinzyl9d","tileAlpha":"1.0","tileBrightness":"1.0","tileColorToAlpha":"","tileColorToAlphaThreshold":"0.0","tileContrast":"1.0","tileGamma":"1.0","tileHue":"0.0","tileSaturation":"1.0","tileRectangle":"","tileCutoutRectangle":"","tileMaximumLevel":"18","tileMinimumLevel":"0","isTarget":false},{"title":"卫星影像注记","url":"http://t{s}.tianditu.com/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&