有了BIM+GIS,实现室内室外一体化,室内导航等不再是梦想了哈!

最近为了学bim+gis,断断续续开始学超图产品,还是小白一枚,若分享中有错误,欢迎批评指正!

关于BIM的属性查询,之前在网上没找到合适的解决方案,走了不少弯路,终于解决了!废话不多说,直接上干货!

相信有不少小伙伴像我一样,学习时候参考的这个范例http://support.supermap.com.cn:8090/webgl/examples/editor.html#S3MTiles_BIM

但是,这是个坑啊!入坑的小伙伴们让我看到你们的双手,知道自己不是一个人

我联系了超图的技术人员,给出的答复是这个BIM模型是矢量面贴上去的,发布的数据服务是多个数据聚合云云的(具体说法忘了,总之不要用这个撒)

需要参考的正确范例是这个http://support.supermap.com.cn:8090/webgl/examples/editor.html#S3MTiles

先把我的代码贴上来吧,后面解释一下几点需要注意的地方。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"><title>属性查询</title><link href="./Build/Cesium/Widgets/widgets.css" rel="stylesheet"><link href="./css/pretty.css" rel="stylesheet"><script src="./js/jquery.min.js"></script><script src="./js/config.js"></script><script type="text/javascript" src="./js/require.min.js" data-main="js/main"></script><style>html, body, #cesiumContainer {width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;background-color: #000000;}</style>
</head>
<body>
<div id="cesiumContainer"></div>
<div id='loadingbar' class="spinner"><div class="spinner-container container1"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div><div class="spinner-container container2"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div><div class="spinner-container container3"><div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div></div>
</div>
<blockquote id="bubble" class="bubble"><h2 id="title"></h2><p id="des" class="word"></p></blockquote>
<script type="text/javascript">function onload(Cesium) {var infoboxContainer = document.getElementById("bubble");//初始化viewer部件var viewer = new Cesium.Viewer('cesiumContainer',{imageryProvider: new Cesium.BingMapsImageryProvider({url : 'https://dev.virtualearth.net',mapStyle : Cesium.BingMapsStyle.AERIAL})});viewer.scene.undergroundMode = true; //设置开启地下场景viewer.customInfobox = infoboxContainer;var scene = viewer.scene;var canvas = scene.canvas;var widget = viewer.cesiumWidget;$('#loadingbar').remove();try {//添加S3M图层服务var promise = scene.addS3MTilesLayerByScp('http://localhost:8090/iserver/services/3D-JiaNianHuaZhan2/rest/realspace/datas/PowerEBM@建筑整合/config', {name: 'jinjiang'});Cesium.when(promise, function (layer) {if(!scene.pickPositionSupported){alert('不支持深度拾取,属性查询功能无法使用!');}//设置属性查询参数layer.setQueryParameter({url: 'http://localhost:8090/iserver/services/data-JiaNianHuaZhan/rest/data',dataSourceName: '建筑整合',dataSetName: 'PrjRegionResult',keyWord: 'SmID'});//设置相机视角scene.camera.setView({//将经度、纬度、高度的坐标转换为笛卡尔坐标destination : new Cesium.Cartesian3.fromDegrees(120.398294317173950,36.117298362827277,50),orientation : {heading : 4.7793869967010565,pitch : -0.5899023527373464,roll : 8.539835505416704e-12}});}, function (e) {if (widget._showRenderLoopErrors) {var title = '渲染时发生错误,已停止渲染。';widget.showErrorPanel(title, undefined, e);}});}catch (e) {if (widget._showRenderLoopErrors) {var title = '渲染时发生错误,已停止渲染。';widget.showErrorPanel(title, undefined, e);}}//添加自定义infoboxvar title = document.getElementById("title");var des = document.getElementById("des");var myimg = document.getElementById("myimg");//注册鼠标点击事件viewer.pickEvent.addEventListener(function(feature){console.log(feature);var title = Cesium.defaultValue(feature.NAME,'');var description=new Array()description[0]=Cesium.defaultValue("SMID:"+feature.SMID,'');description[1]=Cesium.defaultValue("SMSDRIW:"+feature.SMSDRIW,'');description[2]=Cesium.defaultValue("SMSDRIN:"+feature.SMSDRIN,'');description[3]=Cesium.defaultValue("ELEMENTID:"+feature.ELEMENTID,'');title.innerText = title;des.innerText = description;});}
</script>
</body>
</html>

回到小白的解决历程上来:

1.关于BIM模型的服务,你发布对了吗?

需要注意的几个点:

(1)BIM模型的数据源添加到场景中(友情提示,减少出错机会,初学者最好先用一个图层)

(2)打开场景,选择上方工具条中的【对象操作】->【截面与投影】->【投影面】,选择对应数据获取其投影面数据(非常重要!!!不然数据量太大,想进行属性查询?不存在可能性的)

(3)场景右键生成缓存,保存并关闭场景(关闭很重要!!!同一数据不能同时在desktop 和iServer中打开)

生成场景缓存时会有这样的提示,我就一个建议,别听它忽悠,别听它吓唬你!勇敢的生成场景缓存吧!离革命胜利又近了一步啦!

根据个人喜好修改下路径啥的,然后坐等进度条跑完。再提醒一次,完事儿记得保存并关闭!因为文件型数据源具有独占性!!!

(4)然后打开SUPERMAP ISERVER进行服务的发布,包括REST三维服务和数据服务!

我的iServer是免安装版的,所以要先start.bat启动服务.服务启动之后访问iserver就是这个界面。发布服务需要选择服务管理。

个人经验:这个路径尽量不要包含中文,否则点击下一步没反应!

选择这两种服务类型点击下一步发布即可。然后发布的数据服务就可以用在上述的DEMO代码中调试查看效果啦!给大家看下我的效果。作为一个妹子,我也深知这样的界面丑到你了,哈哈,我也觉得弹窗好丑,功能实现了最重要。

如果您有任何问题,欢迎联系我,我们一起讨论呀

超图supermap实现BIM模型的属性查询相关推荐

  1. Super Map超图IServer倾斜摄影模型单体化与属性查询操作

    倾斜摄影模型单体化与属性查询操作 倾斜摄影模型通常被称作"一张皮"的模型,为发挥倾斜摄影模型应用价值,必须对倾斜摄影模型进行单体化处理.超图三维率先采用了模型叠加矢量面的方式对倾斜 ...

  2. BIM模型、倾斜摄影模型、3D模型对比

    开发工具与关键技术:SuperMap iDesktop 10i 作者:Mr_恺 撰写时间:2020.4.25 模型数据与GIS平台的对接: BIM模型数据与GIS平台的对接: BIM与GIS对接要求 ...

  3. BIM模型导入SuperMap

    目录 一.超图 BIM插件安装 1.1 插件下载 1.2 安装 二.BIM模型导出 2.1 Revit插件导出 2.2 SuperMap导入工具 三.SuperMap BIM数据处理与服务发布 四.S ...

  4. 初步了解BIM模型和超图相关操作

    建筑信息模型 - BIM 建筑信息模型(Building Information Modeling)是建筑学.工程学及土木工程的新工具.建筑信息模型或建筑资讯模型一词由Autodesk所创的.它是来形 ...

  5. supermap mysql_超图supermap sdx数据库用sql实现空间查询

    在此介绍用sql对超图的空间数据库(sdx)进行空间查询,优点如下: 1.超图推荐的方式是用iobject,此方法要引入iobject 2.超图另一个推荐的方式是用iserver的REST接口,但we ...

  6. SuperMap iObject入门开发系列之五管线属性查询

    本文是一位好友"托马斯"授权给我来发表的,介绍都是他的研究成果,在此,非常感谢. 管线属性查询功能针对单一管线图层进行特定的条件查询,然后将查询结果输出为列表,并添加点位闪烁功能, ...

  7. SuperMap GIS BIM类型数据优化 QA

    一.BIM数据特点 BIM数据它不仅可以在设计中应用,还可应用于建设工程项目的整个寿命周期中:用BIM进行设计属于数字化设计:BIM的数据库是动态变化的,在应用过程中不断在更新.丰富和充实:为项目参与 ...

  8. SuperMap GIS BIM类型数据处理 QA

    一.数据简介 BIM(Building Information Modeling)建筑信息模型.首先由AutoDesk公司提出的技术,用来帮助实现建筑信息的集成,从建筑的设计.施工.运行直至建筑全寿命 ...

  9. cesium 加载bim模型_构建统一CIM数字底盘,实现基于BIM的全流程管控

    ▲点击关注,收获更多GIS精彩 2009年,SuperMap发布了首款二三维一体化GIS软件,首次提出了二三维一体化GIS技术.随后,二三维一体化的应用系统不断涌现,二三维一体化技术逐步成为三维GIS ...

最新文章

  1. redis成长之路——(一)
  2. hadoop题目(一)
  3. ScottGu之博客翻译-LINQ to SQL第四部分,更新数据库 LINQ to SQL (Part 4 - Updating our Database)...
  4. 将Java程序作成exe文件的几种方法【转载】
  5. BZOJ1061 NOI2008 志愿者招募 线性规划、费用流
  6. php命令执行脚本文件,PHP文件包含与命令执行方式总结
  7. android 沙箱 逆向,【原创】沙箱Sandboxie v3.40 逆向完整源码
  8. 和风天气OUC——通过搜索城市快速查询天气
  9. 工作日时间差/考勤计算(SQL 自定义函数)
  10. 【题解】UVA11584 Partitioning by Palindromes
  11. 网络摄像头RTSP直播方案(三)
  12. linux硬盘自动停转,求助硬盘异常系统自动挂起导致宕机
  13. 4.2.7-packet-tracer---configure-router-on-a-stick-inter-vlan-routing
  14. 消防系统设计市场现状及未来发展趋势
  15. Python骇客帝国弹幕1.0
  16. 节点表征学习[GCN、GAT]
  17. 以太坊源码分析(53)以太坊测试网络Clique_PoA介绍
  18. 使用Matlab软件对NDVI进行最大值合成
  19. 通过百度地图把经纬度转化成城市名
  20. 数学建模——图与网络模型及方法(二)

热门文章

  1. linux强制卸载移动硬盘,用umount命令卸载移动硬盘有几种方式
  2. VBA里的文本函数 find() search() substitute() replace() match() large() 在EXCEL工作表使用和VBA中使用差别的对比
  3. 线性代数【四】:向量(1):线性相关及其判别,极大线性无关组,等价向量组
  4. 使用Maven构建WebApp项目
  5. LWN:The netfslib helper library
  6. python能成为编程届的网红么?
  7. 一波接一波,吃瓜群众几度崩溃,微博为何总宕机?
  8. 一文理清H5调起App那些事
  9. 人大金仓数据库查询表信息
  10. 不要用子类!Swift的核心是面向协议