Cesium加载建筑物模型(shp转Geojson\3Dtiles)

      本文主要介绍cesium加载Geojson和3dtile格式的建筑物模型文件,除此之外还介绍了Cesium工具栏的屏蔽方法、天地图的加载、地球初始状态设置等几个部分的内容,其中又不乏参照、优化诸如: 想成为大神的前端王菜鸟、 loves小鱼儿、 Alice爱俪丝等大神作品的内容,在此表示感谢,他们的文章地址分别如下:

         https://blog.youkuaiyun.com/wwqqqq123/article/details/90400366

         https://blog.youkuaiyun.com/xiaoyuer666999/article/details/75370428

         https://blog.youkuaiyun.com/qq_18144905/article/details/81979807

         文章内容都是我在学习和项目中实际遇到的需求,希望对大家也有所助益。

1.关于数据的获取和处理

       建筑物模型数据很多地方都号称有,不过获取可能要花点周折。本着开放学习交流的初心,文章会附带我做试验的原始及成果数据,希望对大家有用。

       (1)shp数据转换为Geojson数据

         虽然有很多工具,但Geojson数据和json数据还是有差别的,大家首先会想到ArcGIS,但我并没有用它达到理想的效果,最终采用的是QGIS实现shp数据转Geojson数据的,操作很简单,仅为加载,图层右键输出Geojson格式数据这样简单的操作。

        (2)3dtile数据的生成

          网上会宣称shp转换为3dtiles数据的处理工具,但同样要想使用这些工具,也要花费周折,我因刚接触Cesium不久,但终会在不久后会做出这样的工具,并将代码开放出了,敬请博文公告。这里就会在数据包中连同数据处理工具。

2.加载Geojson建筑物模型数据并渲染

    var viewer = new Cesium.Viewer('cesiumContainer');
    //添加geojson格式地理数据(由shp格式文件转换得来)
    Cesium.Math.setRandomNumberSeed(0);
    var promise =Cesium.GeoJsonDataSource.load('ShangHai3Dtiles.geojson');
    promise.then(function (dataSource) {
        viewer.dataSources.add(dataSource);
        var entities =dataSource.entities.values;
        for (var i = 0; i < entities.length;i++) {
            var entity = entities[i];
            var builingHeight = entity.properties.Floor;
            if(b
评论 21
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值