需求:噪声管理项目,在项目的实际开发过程中,需要展示某一个地方的三维建筑物分布情况,并且一个建筑物要根据楼层不同高度设置不同的颜色,决定使用基于地图的三维框架cesium来实现。。在cesium官网上面,有通过加载geojson展示三维建筑物的实例,代码如下所示,(官网例子一个建筑物对应一个实体,一个建筑物只能有一种颜色,这跟建筑物分层设色的需求并不符合,还有待深究。。)
var neighborhoodsPromise = Cesium.GeoJsonDataSource.load('./SampleData/building.geojson', geojsonOptions);
var neighborhoods;
neighborhoodsPromise.then(function(dataSource) {
// Add the new data as entities to the viewer
var city = viewer.dataSources.add(dataSource);//向地图加载要素
neighborhoods = dataSource.entities; //获取要素中的实体,给实体一定的高度
// Get the array of entities
var neighborhoodEntities = dataSource.entities.values;
for (var i = 0; i < neighborhoodEntities.length; i++) {
var entity = neighborhoodEntities[i];
if (Cesium.defined(entity.polygon)) {
// 给每个实体不同的配色,每个实体对应一个建筑物,每个建筑物则对应一种颜色,根据建筑物高度不同,