基于supermap的二次开发小型展示系统设计与实现

(整期优先)网络出版时间:2023-03-14
/ 3

基于supermap的二次开发小型展示系统设计与实现

郭琰

陕西省水利电力勘测设计研究院  陕西西安  710001

摘要:本人于近年对supermap软件进行研究,掌握了基于supermap的二次开发基本技能。本文介绍了倾斜摄影模型,重点介绍了BIM+Gis的应用、现状和前景。根据所学本人设计实现了一个小型的基于supermap二次开发的展示系统,其中发布的图层可以有剪切、量测、旋转、放大、缩小、弹出属性数据等功能。通过学习,在系统的设计与实现中获益匪浅。

关键词:supermap、BIM+Gis、二次开发

1系统总体介绍

1.1  Supermap的介绍

超图集团致力研究地理信息系统软件,研发出的大型 GIS 软件系列——SuperMap ,是集二三维一体化的空间数据采集、存储、管理、分析、处理、制图与可视化的工具软件。超图公司最近几年对BIM+Gis工作有一定的贡献,并且在水利建筑等行业也有了较快的发展。

软件有3个月的试用期限,经过试用后如果觉得可行,或适用于本人本公司可以另行购买。试用也可以继续申请,只需要在官网上注册账号进行申请,会发给本人注册邮箱里LIC类型等文件,在本地Supermap许可中心激活更新即可继续试用。激活时注意用管理员身份打卡许可中心。

1.2 本系统功能介绍

基于Supermap可以进行二次开发,本人使用了iServer服务器和supermap软件试用进行了二次开发。系统主要有以下功能:

1.2.1 展示倾斜摄影图层,本系统展示只有一个倾斜摄影图层,体量较小,已转换为s3m图层发布在iServer服务器中。

1.2.2 展示BIM模型,本系统展示有3个BIM模型,分别是一个厂房、水库和泵站。

1.2.3 展示BIM模型的属性,单击BIM模型,有对话框弹出,此对话框可以将BIM模型的基本属性比如id、经纬度,或者其他重要属性等展示在页面中。

1.2.4 展示单体化倾斜摄影模型的属性,通过对倾斜摄影模型进行单体化操作,弹出对话框,显示比如ID、Name、经纬度、高程等属性。由于本人对于单体化技术掌握有限,将在后续版本中实现单体化倾斜摄影模型及其编程。

1.2.5 其他平台功能,比如放大、缩小、移动、旋转镜头。

2 BIM+Gis的介绍

    2.1 BIM介绍

建筑信息模型(Building Information Modeling)是以建筑工程项目的相关信息数据作为模型的基础,通过数字信息仿真来模拟建筑物。BIM建模是现在大多数建筑水利水工等专业必须具备的技能,比如试用CATIA等软件进行建模。

2.2 Gis系统的介绍

地理信息系统(Geographic Information System)是在计算机硬、软件系统下,对整个或部分地球表层空间中的有关地理分布的数据进行采集、储存、管理、运算、分析、显示和描述的系统。

2.3 BIM+Gis的现状和前景

要推进BIM协同工作等技术应用,用来提高专业技术水平,提高工作效率等。BIM的前景将会非常的广阔。BIM建模工具等将成为项目管理中强有力的使用工具,其在BIM建筑信息模型在项目阶段都起着极其重要的作用。它将应用于项目全生命周期的不同领域。

Gis工具软件致力于对地理分布的数据进行处理。BIM 与 GIS 集成应用,可提高长线工程和大规模区域性工程管控的能力。BIM 的应用对象往往是单个建筑物,使用GIS 宏观尺度上的功能,可将BIM 的应用范围扩展到道路、铁路、隧道、水电等工程领域中去。

BIM+Gis是一个非常具有前景的领域,使用面很广,应用性很强,能为大众生活带来方便,在工程技术类领域也将会有长足的发展。

3 倾斜摄影的介绍

3.1 倾斜摄影的介绍

倾斜摄影技术是国际测绘领域近些年发展起来的一项高新技术,在同一无人机等设备上搭载多台传感器,从一个垂直、四个倾斜五个不同的角度进行影像采集,将采集的影像通过软件形成一种三维世界的观感。

3.1.1 可真实反映周边地物。倾斜摄影通过影像采集后,经过软件运算处理,可以将周边地物真实清晰的反映在倾斜摄影模型中,还原度很高,有利于各个行业的使用。但是,由于很分辨率及其他原因,产生的文件数据量较大,一般水利工程使用的倾斜摄影模型大都在40-50G左右。但是,可以对不需要显示过分清晰的数据进行轻量化操作,有的模型或者平台能简化30%左右。

3.1.2 可实现单张影像量测。影像测量不转换为OSGB格式时,是以图片形式存在的。可以实现对于单张影像的量测,具体可以根据比例进行。

3.1.3 建筑物侧面纹理可采集。由于倾斜摄影模型的精度较高,可以对建筑物的侧面纹理进行收集,比如墙体、坝面等纹理都可以在倾斜摄影模型中采集到。

3.2倾斜摄影模型的优缺点:

倾斜摄影制作出的模型数据精度高,纹理与实际效果偏差不大,生产过程中直接使用软件进行转换即可,同时数据制作周期不长;需要用无人机等专业设备专业人员进行多角度全方位的拍摄,有时候还需要注意取景的时间和光线;所需空间容量较大。

3.3 Supermap对倾斜摄影的处理

倾斜摄影由于体量一般较大,所以在上传发布前都会进行轻量化处理。而处理后,在Supermap发布前,supermap软件会将倾斜摄影模型处理为s3m格式,可以发布到iserver服务器。

3.4 Supermap对倾斜摄影的展示

在supermap的iServer服务中,可以开启三维数据的服务,然后将项目发布后,在浏览器中可以浏览发布的项目,在做二次开发后,发布的图层可以有剪切、量测、旋转、放大、缩小、弹出属性数据等功能。具体见四章节中关键代码的展示。

4 关键代码的展示及系统功能说明

4.1关键代码:

//加载倾斜摄影模型图层

function onload(Cesium) {

//config地址      var url = "http://localhost:8090/iserver/services/3D-123/rest/realspace/datas/Configsample/config";

//创建viewer

   viewer = new Cesium.Viewer('cesiumContainer');

   var scene = viewer.scene;

var widget = viewer.cesiumWidget;              

  try{             

    var promise=scene.addS3MTilesLayerByScp(url, {name:"jsyt"})

     Cesium.when(promise, function (layers)

{

scene.camera.setView({

//坐标转换 destination:Cesium.Cartesian3.fromDegrees(108.7550000265955,34.20779086815724,100 )});

// 添加光源

      scene.lightSource.ambientLightColor = new Cesium.Color(0.65, 0.65, 0.65, 1);

//光源方向点

//设置相机视角

//将经度、纬度、高度的坐标转换为笛卡尔坐标        

    scene.camera.setView({

                    destination : new Cesium.Cartesian3.fromDegrees(108.7550000265955000,34.2077908681572400,100.0000000000000000 ),orientation : {

           heading : 4.7793869967010565,

           pitch : -0.5899023527373464,

           roll : 8.539835505416704e-12

                    }

                });

//获取地图,添加到窗口

var map, resultLayer,

                url = "http://localhost:8090/iserver/……";

map = L.map('map', {

                preferCanvas: true,

                crs: L.CRS.EPSG4326,

                center:{lon: 114.59, lat: 34.23},

              });

L.supermap.tiledMapLayer(url).addTo(map);

4.2 发布时应该注意:

下载新版本的iserver,注册成功后,可以进行登录。之后点击发布新项目,根据所需的服务,比如本系统需要三维服务,可以框选三维服务,之后不断点击下一步,直至发布成功。

因为iserver发布时对于倾斜摄影有要求,所以需要在supermap中将倾斜摄影模型转换成S3M格式,然后发布场景。

在iserver中可以查到每个图层对应的储存地址,可以加入到所开发的系统所需的位置,以便进行显示。

4.3 其他功能:

4.3.1 对于不同的模型ID,加入监听,可以用代码实现弹出bubble,bubble中自带模型属性信息,可以显示模型的ID、Name、坐标、其他属性信息,通过代码实现。

4.3.2 放大、缩小、平移图层视角,可以通过代码实现对图层的放大、缩小功能,同时可以使用鼠标对图层平移和旋转、

4.3.3 模型单体化,在supermap中处理需要单体化的模型,加入handle,可以点击后弹出bubble,但在本系统中没有加入这个功能,将在后续版本中加入此功能并逐渐完善。

    5 开发时遇到的问题及解决方法

5.1 图层加载不上。由于浏览器内核的不同,对于图层的显示也有不同,在此推荐使用Chrome浏览器,是supermap官方推荐的浏览器,会更好的支持图层及功能的显示和展示。

5.2 由于代码头文件的不同,有时候会不显示弹出框,可以将头文件进行更新修改,一般是头文件与相应的功能不匹配。

5.3 加载过慢。可能有时候系统需要加载倾斜摄影模型或者某些较大型的BIM模型,由于数据处理量过大,则会产生加载速度太慢的问题,此时可以先加载一遍,然后不删除缓存,下次打开后速度会呈几何倍数的增长。

通过对supermap二次开发的研究,使我受益匪浅。不仅仅对倾斜摄影模型有了更深刻的了解,对于BIM+Gis的应用有了更深刻的认识,同时对平台的研究、服务的发布和二次开发代码的改良有了一定自己的见解。但是,我也深深认识到自己的不足,对于行业的新动向把握不是很到位,对于二次开发的技术掌握也并不完备和完善,比如单体化后的系统研发就是我较大的短板。