E18fb9bf4d6aedb504e1fe0c56cfe071
Cesium项目应用(1)-3dtiles单体化。附带源码下载

前言

Numbers have an important story to tell. They rely on you to give them a clear and convincing voice.只要你为数字提供清晰、服众的展现方式,数字可以告诉我们很重要的信息。
——Stephen Few(代表作:《Now You See It》)

内容概述

本篇文章讲述如何实现对3dtiles模型进行分栋和分户的项目需求,附带源码下载。
1、分栋
2、分层
3、源码下载


实现思路

核心引用 Cesium ClassificationPrimitive类,实现单体化。


1、分栋
效果图:


核心代码

ldCollection.add(new Cesium.ClassificationPrimitive({
    geometryInstances: new Cesium.GeometryInstance({
        geometry: new Cesium.PolygonGeometry({
            polygonHierarchy: new Cesium.PolygonHierarchy(
                Cesium.Cartesian3.fromDegreesArray('坐标')
            ),
            extrudedHeight: '高度'
        }),
        attributes: {
            color: Cesium.ColorGeometryInstanceAttribute.fromColor(new Cesium.Color(1, 1, 1, 1e-4)),
            show: new Cesium.ShowGeometryInstanceAttribute(true)
        },
        id: '自定义id'
    }),
    classificationType: Cesium.ClassificationType.CESIUM_3D_TILE
}))

2、分层
效果图:

核心代码

// 加载楼层Primitive
function addLcPrimitive(center, dimensions, name) {
    var position = new Cesium.Cartesian3.fromDegrees(center[0], center[1], center[2]);
        s = Cesium.Transforms.eastNorthUpToFixedFrame(position),
        rotation = Cesium.Matrix3.fromHeadingPitchRoll(new Cesium.HeadingPitchRoll(0, 0, 0)),
        u = Cesium.Matrix4.fromRotationTranslation(rotation, new Cesium.Cartesian3(0, 0, 0));
    Cesium.Matrix4.multiply(s, u, s);
    lcCollection.add(new Cesium.ClassificationPrimitive({
        geometryInstances: new Cesium.GeometryInstance({
            geometry: Cesium.BoxGeometry.fromDimensions({ 
                vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT,
                dimensions: new Cesium.Cartesian3(dimensions[0], dimensions[1], dimensions[2])
            }),
            modelMatrix: s,
            attributes: {
                color: Cesium.ColorGeometryInstanceAttribute.fromColor(new Cesium.Color(1, 1, 1, 1e-4)),
                show: new Cesium.ShowGeometryInstanceAttribute(true), 
            },
            id: name
        }),
        classificationType: Cesium.ClassificationType.CESIUM_3D_TILE
    }))
}

3、源码下载

百度网盘:
链接:https://pan.baidu.com/s/1gn7Xz1sZXJ9BBWOzpRqFTA
提取码:eqgu

© 著作权归作者所有
这个作品真棒,我要支持一下!
人员能力: 核心开发人员均拥有多年cesium开发经验,先后参与多个项目。拥有底层cesium源码研究,webgl...
2条评论

#1楼 @lifefriend 已修改文件地址,请重新下载。

top Created with Sketch.