cesium加载3dtile并将geojson进行叠加(保姆级教程)

这篇具有很好参考价值的文章主要介绍了cesium加载3dtile并将geojson进行叠加(保姆级教程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这段时间一直在研究这个问题,今天终于是解决了,受到了很多人的帮助,不然可能还要很久才能摸索出方法。

在开始之前,我们假设你已经知道了cesium的最基础的使用方法,比如下载cesium,启动cesium等。

好了,步入正题。首先你除了需要准备cesium的那些源码文件外还需要:1、相应的osgb文件和dwg文件(本篇文章以这种为例)。2、Qgis软件。3、cesiumlab。4、arcmap软件。

分为两个部分进行操作:

1、对dwg文件的处理:

使用你的arcmap打开dwg文件,将dwg格式转换为shp文件(方法为:选中文件->右键->数据->导出数据)。将导出的shp文件加载进arcmap,此时你需要知道你要转换的文件的初始坐标系,我这里是CGCS2000 114E,于是将导入的shp文件定义投影为CGCS2000 114E,之后再使用工具箱中的投影,将该shp文件的投影修改为wgs 84(因为cesium的默认坐标系使它,如果你不想自己之后的json文件出现一些奇奇怪怪的问题,转它就对了)。

cesium加载3dtile并将geojson进行叠加(保姆级教程)

转换完成后,此时记得查看你的arcmap的右下角,看看数字是多大,如果还是很大的数字(上万的那种),说明你只是定义了坐标系但是没有正确转换,此时如果你用这个数据进行后续的操作,你的cesium的结果应该是这样的。

cesium加载3dtile并将geojson进行叠加(保姆级教程)

如果正确转换(很明显的是地理经纬度),那么此时记得查看你的shp的属性,看看有没有这个ZM,如果有的话,就需要先将三维的矢量数据转换成二维的,再进行下一步的操作。

 cesium加载3dtile并将geojson进行叠加(保姆级教程)

 三维转二维方法:1、打开arcmap菜单栏地理处理->环境->将M值和Z值都调整为Disabled,保存。2、打开工具栏,选择要素转为shapefile,不要像上文一样使用数据导出。

cesium加载3dtile并将geojson进行叠加(保姆级教程)

 cesium加载3dtile并将geojson进行叠加(保姆级教程)

 导出后发现ZM不见了就说明已经转换成功。

此时打开Qgis软件,将刚刚处理完成的shp文件加载进去,按照图片方法选择,之后选择格式为Geojson,直接进行导出即可。

cesium加载3dtile并将geojson进行叠加(保姆级教程)

 cesium加载3dtile并将geojson进行叠加(保姆级教程)

导出数据后,记得删除掉geojson中的name和crs属性,然后将geojson的后缀名直接改为json,就可以在cesium的代码中调用了。

好了,到此第一部分完成,下面开始第二部分。

2、对osgb文件进行处理:

打开你下载好的cesiumlab(下载地址:Cesium实验室官网),首页的下载点击即可,下载后完成安装。之后打开cesiumlab,注册一个账号,就会进入到该页面。

cesium加载3dtile并将geojson进行叠加(保姆级教程)

点击上图中红色框(倾斜模型切片),选择你的文件,设置参数,注意将存储类型改为散列。然后点击开始转换,接下来就静静等待转换即可。

cesium加载3dtile并将geojson进行叠加(保姆级教程)

转换成功之后就会发现你的输出路径中存在一个tileset.json文件,这个就是你到使用cessium时url指向的文件。

完成上述两步之后,就可以使用cesium进行加载了。

附上加载的代码:

// 这个就是你通过Qgis转换出来的geojson文件
function load_shp3d() {
  var tileset = viewer.dataSources.add(Cesium.GeoJsonDataSource.load('xxx.json', {
    fill: Cesium.Color.PINK.withAlpha(0.5),
    clampToGround: true        // 叠加就用它
  }))
   viewer.zoomTo(tileset);     // 定位到你的数据
   viewer.homeButton.viewModel.command.beforeExecute.addEventListener(function (e) {
    e.cancel = true;
    viewer.zoomTo(tileset);    // 重写homebutton
  })
}
// 这个是你通过cessiumlab转化的osgb文件
function load_tileset() {
  var tileset = new Cesium.Cesium3DTileset({ url: 'xxx.json' })
  viewer.scene.primitives.add(tileset);
  viewer.zoomTo(tileset);  // 在初始化时定位至模型位置
  viewer.homeButton.viewModel.command.beforeExecute.addEventListener(function (e) {
    e.cancel = true;
    viewer.zoomTo(tileset);
  });
}

最后,为了防止Qgis下载速度慢,将我的Qgis安装包分享给大家:链接:https://pan.baidu.com/s/1giG5jQxlcVZN1b8GiMWaUg?pwd=bsds 
提取码:bsds文章来源地址https://www.toymoban.com/news/detail-402135.html

到了这里,关于cesium加载3dtile并将geojson进行叠加(保姆级教程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Cesium】调整3DTile/tileset的位置到某个经纬度/某个地点/城市

    前提: 模型本身有地理位置信息,模型本身就能显示在地球表面了(而不是在地表下的球心或其他奇奇怪怪的位置) 以下是将tileset的位置调整到北京(在WGS84坐标系下)的正确代码: 在以上代码中,我们首先获取tileset的中心点坐标,并将其转换为WGS84坐标系下的经纬度。然后,我

    2024年02月12日
    浏览(39)
  • Unity加载3dTile倾斜摄影数据(WebGL)

    1.支持.b3dm(3dtile)格式倾斜摄影数据加载,支持osgb格式倾斜摄影数据加载 2.支持编辑器下加载预览,方便进行场景编辑 3.支持海量的数据量加载 4.多线程LOD算法动态加载卸载 5.支持urp,hdrp等渲染管线 6.支持PC,WebGL,Android平台发布 qq交流:1749568798 +VX : huazaikv 相关视频: unity

    2024年02月11日
    浏览(59)
  • VUE3-Cesium(加载GeoJSON数据)

    目录 一、准备工作 1、新建vue项目 解决报错:使用nvm后找不到vue -V找不到版本 2、安装Cesium插件 3、安装 Element Plus、unplugin-vue-components 和 unplugin-auto-import 4、按需自动导入element-plus 测试按需自动导入element-plus是否配置成功 二、项目代码部分 1、引入sichuan.json文件 2、配置main

    2024年02月11日
    浏览(39)
  • Cesium入门之十:Cesium加载3DTiles数据

    3DTiles是一种面向网格化、可展示的大规模三维空间数据格式,专门为流式传输和渲染海量3D地理空间数据而设计的,用于存储和管理基于网格的三维模型数据。其数据结构基于B3DM和PNTS格式,可以支持多个级别的LOD,并使用Tilesets(瓦片集合)来组织和管理数据。3DTiles具有以

    2024年02月12日
    浏览(54)
  • cesium加载三维模型3dtiles

    目的:为避免跨域 输入cmd命令 python3 -m http.server 5500 http://127.0.0.1:5500/data/mars3d-max-shihua-3dtiles-master/tileset.json http://127.0.0.1:5500/cesium/cesium%E5%8A%A0%E8%BD%BD3dtile2.html

    2024年02月13日
    浏览(89)
  • cesium加载3dtiles倾斜摄影数据

    效果如图 倾斜摄影数据的地址:百度网盘 请输入提取码 提取码:ztde 1.配置nginx,代理3dtiles倾斜摄影数据服务 如我的倾斜摄影数据放在D盘的某个文件夹里面,nginx可以这样配置    2.代码里面3dtiles的url指向倾斜摄影服务地址,同时配置一系列的参数 3dtiles的配置参数如下,可

    2024年02月11日
    浏览(50)
  • Cesium地图上加载3DTiles模型

    1,使用Blender创建模型: 官网下载Blender:https://www.blender.org/,在Github上下载Building Tools插件,通过编辑-偏好设置-插件-安装,导入压缩包使用,这个可以自己创建小房子,文件-导出为obj格式 2,将.obj转成3dtiles格式: 1,第一种方法通过加载本地文件展示: 1,github下载ObjTo3

    2024年02月03日
    浏览(45)
  • Cesium加载3Dtiles模型-大疆智图

    Cesium加载3Dtiles模型步骤: (一)如果您使用的是大疆智图,则该软件可以直接输出3Dtiles格式(B3DM切片)的数据,如图所示:   (二)如果您使用的是CC(Smart3D),该软件可以输出OSGB格式的数据,我们可以借助: 1.osg2cesiumApp v1.3软件来将我们的OSGB倾斜摄影数据转换成3Dtil

    2024年02月11日
    浏览(42)
  • Cesium 加载3Dtiles数据-最佳方法对比

            Cesium加载空间数据的方法有很多种,网络上关于3Dtiles数据集加载的废话连篇,看着就很无语。这里我本人直抒胸臆,简单介绍一下数据的加载方式。         先打开Cesium的深度检测的开关,也可以不打开。                完成以上步骤后,利用Cesium的readyPromi

    2024年02月11日
    浏览(97)
  • 前端VUE框架通过Cesium加载3dtiles,计算3dtiles的面积

    前端VUE框架通过Cesium加载3dtiles,计算3dtiles的面积完整代码 前端开发中,使用Vue框架可以帮助开发者更高效地开发复杂的Web应用程序,并且越来越多的项目开始集成三维地球数据可视化。Cesium是一个开源的JavaScript库,可以轻松地实现地球数据的可视化,同时支持3D场景的绘制

    2024年02月08日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包