cesium中利用矢量数据借助wall实现人工建模流程

发布时间:2023年12月27日

项目场景:

例如:运用在人工建模的流程中,需要设置需要设计的人工建模的墙体wall的高度,以及模型的wall的宽度,从而建设模型的初步样式


绘制墙体结构

例如:墙体属于嵌套型矢量数据
演示图:
在这里插入图片描述
演示代码:绘制初步的墙体以及页面交互显示墙体设置模块

const drawWallData = () => {
   
        let action = draw.create(DrawType.Polygon, {
   useDefaultEntity: true});
        action.on(DrawEventType.Complete, async (evt) => {
   
            cc=[];
            mh=[];
            dd=[]
            minh=[];
            action.clearEntity();
            evt.push(evt[0])
            let aa: Cartographic[] = [];
            evt.map((v: Cartesian3) => {
   
                aa.push(Cartographic.fromCartesian(v))
            })
            let result = await sampleTerrainMostDetailed(view?.terrainProvider as TerrainProvider, aa);
            for (var i = 0; i < result.length; i++) {
   
                mh.push(1 + result[i].height)
                minh.push(result[i].height)
                let lng = CesiumMath.toDegrees(result[i].longitude)
                let lat = CesiumMath.toDegrees(result[i].latitude)
                cc.push(lng, lat, result[i].height +1);
                dd.push({
   x:lng,y:lat,z:result[i].height + 1})
            }
            handleAdd(evt);
        });
    }
    const handleAdd = (evt: any) => {
   
        const newData = {
   
            key: `${
   tableData.length + 1}`,
            buildingName: '3',
            textureName: `${
   tableData.length + 1
文章来源:https://blog.csdn.net/CFXXXL/article/details/135240292
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。