CN113282697A - 基于Dojo实现多平台异构兼容的GIS系统及其设计、部署方法 - Google Patents

基于Dojo实现多平台异构兼容的GIS系统及其设计、部署方法 Download PDF

Info

Publication number
CN113282697A
CN113282697A CN202110622064.5A CN202110622064A CN113282697A CN 113282697 A CN113282697 A CN 113282697A CN 202110622064 A CN202110622064 A CN 202110622064A CN 113282697 A CN113282697 A CN 113282697A
Authority
CN
China
Prior art keywords
map
data
interface
module
heterogeneous
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110622064.5A
Other languages
English (en)
Inventor
周宇
纪积发
王栋
柏宝华
许先顺
肖永进
郑相国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan Huaxin Computer Technology Co ltd
Original Assignee
Jinan Huaxin Computer Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jinan Huaxin Computer Technology Co ltd filed Critical Jinan Huaxin Computer Technology Co ltd
Priority to CN202110622064.5A priority Critical patent/CN113282697A/zh
Publication of CN113282697A publication Critical patent/CN113282697A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明提供了基于Dojo实现多平台异构兼容的GIS系统及其设计、部署方法,所述GIS系统包括开发框架、SDK接口、托管部署方式,最终实现地图显示、地图工具、地图渲染、位置服务、数据处理和系统集成的功能。本发明基于Dojo架构,分别支持ArcGIS、GeoServer、OpenLayers、Cesium、Mapbox(但不限于)等各种异构地图平台的GIS开发框架,在框架中实现Shp、CAD、Gdb、Mdb、SDE异构地图数据的兼容处理,并对基于Geo Database企业级地理数据库,托管在不同GIS Server的分布式地图服务实现数据共享。提供对OSGB、Multipatch、SLPK、3Dtiles、Gltf等三维模型的兼容处理,实现二三维地图的显示。为终端用户使用和进一步开发,节省各平台的切换代价和时间经济成本,具有广阔的应用前景。

Description

基于Dojo实现多平台异构兼容的GIS系统及其设计、部署方法
技术领域
本发明涉及GIS(Geographic Information System,地理信息系统)技术领域,尤其是基于Dojo实现多平台异构兼容的GIS系统及其设计、部署方法。
背景技术
随着GIS技术在智能化领域的不断发展和普及,地图应用在web端、移动端、嵌入式等终端设备越来越广泛。目前地图平台类型越来越多,其中有老牌的国际厂商ESRI的ArcGIS,国内的超图,面向二维的GeoServer、OpenLayers,面向三维的Cesium,以及Mapbox、Google、AMap(高德)、Baidu等在线SDK(Software Development Kit,软件开发工具包)。
所有上述平台都基于私有化技术路线和特异性数据结构。面对复杂的地图体系,终端用户面临着更多的技术壁垒和更高的技术门槛。特别是在完成既有项目部署后的转型升级,往往要付出高昂的切换代价和时间经济成本,这对很多中小型企业是难以承受的。
发明内容
本发明提供了基于Dojo实现多平台异构兼容的GIS系统及其设计、部署方法,用于解决现有多中地图平台无法兼容的问题。
为实现上述目的,本发明采用下述技术方案:
本发明第一方面提供了基于Dojo实现多平台异构兼容的GIS系统,所述GIS系统包括开发框架、SDK接口、托管部署方式,最终实现地图显示、地图工具、地图渲染、位置服务、数据处理和系统集成的功能。
地图显示,通过token令牌方式或服务托管方式获取多平台的地图数据,进行二维三维显示;通过坐标系参考系统,设置EPSG坐标系代码,在边框中设置经纬度边界,进行图层管理;通过符号管理、配图样式设置或渲染属性设置进行场景管理;通过开发依赖、组件拓展、数据接口的配置,实现异构地图平台适配兼容;
地图工具,用于地图的缩放平移处理,基于俯仰角及旋转设置进行地图的三维控制,以及水平、高度和空间距离的地图测量;
地图渲染,用于符号样式定义,通过图形属性以及与图层属性数据的整合,进行图形图像渲染,构造面向应用的专题地图;在三维地图环境中,通过kml/kmz的配合使用,将空间局部数据与业务数据进行整合,实现三维模型局部特异性渲染;
位置服务,通过定位装置的回传数据进行实时定位,异步处理中使用math组件,配合页面级的动画处理,形成运行的轨迹动画,并进行线路分析;
数据处理,用于对多种异构地图数据进行属性数据处理、空间数据处理和模型数据处理;
系统集成,用于工控传感和视频监控接口的集成,构建基于GIS的物联网络,实现地图大数据可视化和分布式大数据分析,以图形化模式进行接口的输出。
进一步地,所述GIS系统包括Core模块、Dijit模块和Dojox模块,所述Core模块、Dijit模块和Dojox模块均包括若干个子功能模块;所述地图显示、地图工具、地图渲染、位置服务、数据处理和系统集成均通过所述若干个子功能模块中的多个形成。
进一步地,所述GIS系统还包括地图数据存储端和地图服务管理端;
所述地图数据存储端,通过异构地图数据库访问接口,获取多平台地图数据库数据,进行GIS Server端数据库托管,实现与地图服务管理端的对接;
所述地图服务管理端,包括地图访问及数据处理接口,用于对异构地图平台及数据存储的共享访问及处理。
本发明第二方面提供了所述GIS系统的设计方法,所述设计方法包括以下步骤:
构建整体框架,按照所述整体框架实现的功能,以插件模式嵌入到整体框架中,通过接口输出服务;
基于Dijit模块的组件扩展功能,将功能接口组件化,通过接口复用进行异构地图平台的兼容;
对空间数据进行分类,以兼容异构平台;
对多平台的地图数据进行兼容处理;
基于web客户端页面开发,配置地图运行所需的Dojo框架,并配置核心服务地址以及地图功能组件的访问路径,进行地图展示。
进一步地,所述接口复用中包括进行差异化分析和实现方案对比,所述差异包括图层类型定义、数据接口协议、查询方法定义和图形渲染方式。
进一步地,所述兼容异构平台的实现包括:
在Spacial data module中增加对shp、gdb、mdb、tab、cad、json、geojson、kml、csv和excel数据格式支持;
通过SDE module实现地理数据库存储;
在Map scene module中内置2D map view engine、3D map scene engine,支持二维及三维地图功能;
进行坐标系转换和重投影计算,支持多地图平台间图层及图层上要素的批量坐标系转换和位置校正。
进一步地,所述对地图数据进行兼容处理的实现过程为:
配置空间数据库;
配置所述空间数据库与客户端的连接;
配置地图服务器,包括服务器配置和地图服务的发布;
进行跨域配置,实现地图服务的跨域访问。
进一步地,所述地图显示支持前端框架采用三层结构处理,包括以下特点:
地图逻辑与前端页面分离,通过dom id进行耦合,dom id在组件初始化或接口调用过程中,以参数方式传递;
地图逻辑与第三方逻辑分离;
前端整体包括页面、接口和地图SDK Module三层独立结构;
地图SDK Module采用核心封装,以plugin widget模式与实现的功能对应,通过实例化接口输出服务,提供API协议和用例文档。
本发明第三方面提供了所述GIS系统的部署方法,所述部署方法包括以下步骤:
准备部署环境,并安装依赖包,以加入运行依赖;
在config中加载地图框架的输出路径,以提供前端开发调用的框架接口;
加载开发组件,以引入输出接口;
进行组件实例化;
调用开发接口,实现地图功能。
进一步地,在分布式网络环境中,将服务节点部署在云服务端或局域网托管端。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
本发明基于Dojo架构,实现包括地图显示、地图工具、地图渲染、位置服务、数据处理和系统集成等多种功能的GIS系统,通过接口复用实现多种地图平台的数据兼容,为终端用户使用和进一步开发,节省各平台的切换代价和时间经济成本,具有广阔的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所述GIS系统的整体框架结构示意图;
图2是本发明所述GIS系统中三维模型的空间定位实现流程图;
图3是本发明所述Dojo前端框架的实现流程示意图;
图4是本发明所述GIS系统中前端框架的接口实现流程示意图;
图5是本发明所述GIS系统地图数据库的实现流程示意图;
图6是本发明所述GIS系统地图服务器的实现流程示意图;
图7是本发明所述GIS系统设计方法的流程示意图;
图8是本发明三维模型的定位中的欧拉参数示意图;
图9是本发明所述GIS系统部署方法的流程示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,本发明基于Dojo架构,为Web GIS应用所需要的所有功能提供底层架构支持。根据最终产品功能规划及实现方案,以Core模块、Dijit模块和DojoX模块为核心,为所述功能规划提供实现路径。
在Core模块中我们实现Ajax界面交互的异步处理、Events页面事件响应,其中的packaging为我们的地图组件封装功能提供了支撑,内置的CSS功能可以为地图查询展示提供样式定义,也可以通过自定义进行修改。内置对Json数据接口支持,从而实现Json与地图数据之间解析转换。
在Dijit模块中提供基于Web UI的组件库,在此基础上,对地图操作进行分解,按功能归类到组件库中,封装成widget模式提供服务接口。另外Dijit模块还提供开发依赖和事件绑定功能。
在DojoX模块中实现地图功能的拓展,有更为丰富的web应用进行整合,例如在地图数据查询过程中,利用DateGrid构造日期类的查询条件,利用DataGrid实现图形与数据表格的同步联动;利用Charts构造丰富的地图数据展示图表,实现各种专题应用。基于上述架构设计,为更加丰富的地图展示和数据统计提供事件响应能力。Dojox模块还提供嵌套视图、配置构建和快速部署的功能。
本发明GIS系统所形成的功能模块均通过Core模块、Dijit模块和DojoX模块的若干个子功能模块中的多个形成。其中的功能模块包括地图显示、地图工具、地图渲染、位置服务、数据处理和系统集成。
地图显示,通过token令牌方式或服务托管方式获取多平台的地图数据,进行二维三维显示;通过坐标系参考系统,设置EPSG坐标系代码,在边框中设置经纬度边界,进行图层管理;通过符号管理、配图样式设置或渲染属性设置进行场景管理。具体为针对不同的地图平台,兼容多种方式的地图资源和数据格式。对于Online云服务,通过token令牌方式获取数据。对于特殊要求的场景效果,可以通过符号化管理和配图样式以及与渲染相关的属性设置,通过自定义地图方式,实现热点、符号、路网、区块、标注的自定义渲染。对于本地地图资源,通过ArcGIS Server、GeoServer进行服务托管,通过rest或wms、wcs接口访问地图资源。在地图加载过程中,初始化事件绑定,赋予UI响应功能。通过开发依赖、组件拓展、数据接口三大核心模块配置,实现异构地图平台适配兼容。
地图工具,用于地图的缩放平移处理,基于俯仰角及旋转设置进行地图的三维控制,以及水平、高度和空间距离的地图测量。具体为工具组件实现地图缩放、平移、历史视图的前进后退、底图切换、图层管理、场景切换、地图测量,特别对于三维应用,提供三维场景的俯仰及旋转控制,增加水平距离、高度、空间距离测量功能。地图工具基于UI组件库,并在此基础上进行功能和样式扩展,通过异步处理和事件响应完成对地图的控制。通过开发依赖、组件拓展、数据接口三大核心模块配置,实现异构地图平台适配兼容。
地图渲染,用于符号样式定义,通过图形属性以及与图层属性数据的整合,进行图形图像渲染,构造面向应用的专题地图。具体包括point类型的符号定义,以及polyline、multipolyline、polygon、multipolygon类型的stroke、color、width、linedash、fillcolor、opacity属性定义。通过这些属性,可以对地图要素进行图形描述,通过数据接口,与图层属性数据整合,实现对特征数据的特异性渲染,构造面向特定应用的专题地图。以OpenLayers实现二维polygon类型渲染为例,实现过程如下:
1、首先定义基础图层,我们在此图层上实现地图要素的绘制、渲染和展示。引入ol.layer.Tile模块并实例化,通过其内部的source属性,指向XYZ类型图层的数据源,一般地,以Http方式进行数据请求。
2、定义要素的符号样式,以此进行渲染,此处以polygon类型为例:
引入ol.style.Style模块并实例化,通过其内部的stroke属性,指定lineDash线型、width线宽、带透明度定义的RGB色值定义边界border及内部fill颜色。
3、据上述数据,进行地图初始化展示,过程如下:
引入ol.Map模块并实例化,通过其内部view属性,初始化坐标系统,通过center、zoom属性确定地图视图中心点及视野。最后将步骤1定义的基础图层赋值于layer属性,完成数据整合、要素渲染和地图显示。
特别地,在三维模型局部特异性渲染实现中,通过kml,将空间局部数据与业务数据进行整合,在坐标系统适配过程中,对符合条件的特征值,在SceneTransforms接口中,将空间坐标值转换为屏幕像素坐标值,然后通过符号系统,进行特异性渲染,实现三维场景下,模型的空间查询和精准定位。通过开发依赖、组件拓展、数据接口三大核心模块配置,实现异构地图平台适配兼容。
如图2所示,三维模型的空间定位实现包括构建BIM(Building InformationModeling,建筑信息模型)模型以及KML((Keyhole Markup Language,标记语言)数据接口,进行空间数据与业务数据整合,进行坐标系适配及坐标转换,进行局部特异性渲染。在Cesium中,根据kml进行区域的特异性渲染,过程如下:首先通过创建polygon对象,通过hierarchy属性定义其空间数据的层次体系、通过height指定单元高度、通过material定义颜色及透明度、最后通过screenpositon、destination两个参数,完成屏幕坐标与实际三维位置坐标的对应转换,最终实现基于kml定义的空间定位及图形化渲染。
位置服务,通过定位装置的回传数据进行实时定位,异步处理中使用math组件,配合页面级的动画处理,形成运行的轨迹动画,并进行线路分析。具体为通过数据接口模块,获取第三方定位装置的回传数据,通过异步处理,实现定位点的局地刷新,通过样式定义接口,实现不同类型定位的图形和符号化渲染。特别地,在模拟现场环境的运行轨迹时,在异步处理中使用Math组件实现经纬度、方向角、速率的矩阵模型,配合页面级的动画处理,形成实际车辆运行的轨迹动画。通过开发依赖、组件拓展、数据接口三大核心模块配置,实现异构地图平台适配兼容。
数据处理,用于对多种异构地图数据进行属性数据处理、空间数据处理和模型数据处理。GIS系统数据处理的复杂性在于,地图本身就是一种携带Attribute和Graphic的数据结构,以多种数据形态存在与不同的介质中,如ArcGIS格式的shp、gdb、mdb,AutoCAD格式的dwg,基于描述性语言的kml、json,基于表格的excel,基于文本的csv,基于DBMS的Geometry数据类型。本发明依托开发依赖和数据接口,通过事件绑定和嵌套试图,完成异构数据的转换处理和异构平台的数据共享。
系统集成,用于工控传感和视频监控接口的集成,以图形化模式进行接口的输出。地图应用的服务对象最终要落实到实际的生产过程中,地图作为数据的载体,更大的意义体现在对运营数据的提取,挖掘其隐藏在原始形态中的潜在逻辑关系,在时间和空间维度进行再加工,以图形化模式输出决策分析结果,实现更大价值的增值服务。本发明可以与SCADA工控采集系统整合,通过数据接口和组件拓展,构建面向行业应用的数据监控系统,通过依赖组件,实现异构地图平台适配兼容。
图1中形成的接口:二维三维、图层管理、场景管理、缩放平移、三维控制、地图测量、符号样式定义、图形图像渲染、专题地图、实时定位、轨迹动画、线路分析、属性数据处理、空间数据处理、模型数据处理、工控传感、视频监控等,在可视化地图操作中均可以视为widget,可以独立完成被赋予的特定功能。Widget通过且仅通过标签Id与页面进行耦合,通过前置css或html页面级重构进行样式定义。参数化的DOM Id耦合机制确保了地图框架与UI界面的无关性,同时了实现了地图逻辑与第三方逻辑的隔离。基于上述的设计思想,使地图应用的跨平台、跨框架成为可能。
地图及其扩展组件容器,使用div作为地图展示和扩展功能的页面容器,在实例化组件的过程中,通过传递ID,实现特定组件与页面标签的整合。第一种方式:在组件实例化过程中作为new参数传递,在constructor过程中完成界面整合;第二种方式:在完成组件实例化后,在具体的接口调用中传递ID,完成与对应容器的整合。
目前具有代表性的异构地图平台包括:ArcGIS、GeoServer、OpenLayers、Cesium、MapBox、Leaflet、Google Map、超图(Supermap)、高德地图(Amap)。ArcGIS具有完整的产品线体系,地图数据生产到地图服务管理到开发API,构成一个体系化的地图产品线。GeoServer是基于Java的服务端地图管理器,输出遵循OGC标准的地图服务。OpenLayers、Cesium、MapBox、Leaflet、Google Map则是面向Web前端的开发类库。各平台之间在技术路线和数据结构存在很大的差异性,形成了地图应用上的技术性壁垒。本发明从代码级别实现上述平台的异构兼容,纳入到统一的地图框架中,通过细颗粒化的组件方案,解决异构平台的功能交互和数据共享。
地图平台的兼容处理包括地图请求的兼容处理、地图渲染的兼容处理和地图存储的兼容处理。
地图请求的兼容处理:上述功能都有兼容异构平台的实现方案。在图层管理和地图数据处理方面,不同平台的处理能力和处理方式差异性很大。我们在矢量和影像图层地图只读访问时,使用WMS服务请求;在地图编辑时,使用WFS服务请求。
地图渲染的兼容处理:在处理WFS服务请求时,请求协议无法携带既有地图服务中的符号系统和样式定义,我们通过加载本地符号系统和重新定义point、polyline、multipolyline、polygon、multipolygon样式,通过定义mark、size、lineDash、stroke.width、stroke.color、fill.color等属性,实现地图渲染。
地图存储的兼容处理:通过WFSTSerializer接口将地图数据序列化后,通过post方式提交至地图服务器,直接更新到地图数据库中。针对地图查询和编辑响应速度有更高要求应用,基于OGC标准规范的访问协议在性能上无法满足要求,通过FeatureLayer接口实现地图在线编辑,同时支持Attribute属性数据和Graphic图形数据更新。考虑到客户网络负载和服务器性能,在地图服务属性中进行数据响应吞吐量的弹性设置,规定每次地图请求的最大返回数据,从而实现最佳的处理性能。
要实现整个GIS系统的应用,GIS系统出上述前端架构(所述Dojo架构)外,还包括地图数据存储端和地图服务管理端。地图数据存储端,通过异构地图数据库访问接口,获取多平台地图数据库数据,进行GIS Server端数据库托管,实现与地图服务管理端的对接。地图服务管理端,包括地图访问及数据处理接口,用于对异构地图平台及数据存储的共享访问及处理。
如图3所示,在Web服务器中托管并配置Dojo运行环境。托管服务器是基于J2EE的web服务器,包括Apache Tomcat、Ngnix、Jboss、Websphere,Weblogic。部署模式可采用独立部署和与项目集成两种模式,在独立部署模式下,需要对Web服务器做跨域配置,通过CORS实现跨域资源共享,特别是在请求Dijit中的CSS的情况下,涉及到静态资源分配,这种配置是必须的。
基于Core、Dijit、DojoX实现核心地图组件。为本发明地图核心提供框架基础。
按功能定义进行分类,按类型进行封装,在接口中实现兼容。本实施例中的功能定义可理解为向用户提供的地图应用技术范畴及实现方法,作为package封装的分类依据。对异构地图平台的兼容在接口的方法层实现。
实现Web框架适配,形成GIS应用开发框架。本发明所遵循的AMD规范,本身就基于基本的JavaScript,我们以define方式统一模块的定义和加载机制,并依托组件扩展能力,可以迅速得到很多框架的认可和采纳。
如图4所示,基于Dojo核心模块的架构支撑,按功能划分进行Module封装,在Module接口中实现平台兼容,对整体架构进行web框架兼容适配,实现在web服务器中的托管,从而输出接口,便于前端调用及功能实现。其中前端调用和功能实现是在本架构部署后进行。
如图5所示,本发明内置地图数据库接口,实现对异构地图平台及其数据存储的共享访问及处理。支持Oracle、SQL Server、Postgresql、MySQL。赋予web客户端强大的属性数据和空间数据的分析和检索能力。
以Oracle为例,以下所述基于已具备Oracle数据库服务器的运行环境。
根据版本对应的原则,64bit GIS Server对应64bit Oracle客户端,支持跨平台部署,通过环境变量配置,实现数据库连接。
以ArcGIS Server为例,配置对数据库服务器的托管,实现SDE连接,实现对地图数据的存储访问。
地图数据导入,对数据进行版本化管理。实现与地图服务器的对接。
如图6所示,本发明内置地图服务访问及数据处理接口,实现对异构地图平台及其数据存储的共享访问及处理。支持ArcGIS Server、GeoServer、Cesium Ion等地图托管服务器的安装、配置与启动。赋予web客户端强大的地图服务解析和处理功能。
以开源GeoServer为例。通过Apache Tomcat(但不限于)进行托管,输出地图服务。通过数据存储建立数据库连接,通过工作区和命名空间输出地图服务,输出wms、wfs、wcs、wmts等地图服务接口。
地图坐标系定义及范围设定,以开源GeoServer为例。在图层管理模块,通过坐标参考系统,设置EPSG的坐标系代码,在边框中设置经纬度边界。在web客户端按设定的坐标系及边界进行显示。
地图渲染功能,以开源GeoServer为例。通过Styles组件,以xml方式实现对point、polyline、polygon类型的符号化管理和图形、颜色描述。在响应we客户端wms服务请求时,按定义文件实现地图渲染。
实现地图服务器的跨域处理及数据共享,以输出地图服务。
本发明的设计思想为:基于AMD(Accelerated Parallel Processing,并行处理技术)的模块体系结构,对地图组件的初始、加载和后构进行异步事件化处理。通过ready事件,实现地图容器及相关联的功能组件的初始化;通过on事件,相应部件操作;通过then事件,进行图层加载后的数据处理。在此基础上,完成对所有异构地图平台的兼容处理。
从基于最底层的Javascript方法进行封装,为地图应用构建额外的功能。这些功能涵盖地图渲染、符号化管理、图层加载及查询、数据和图形化编辑、数据存储和服务接口。通过更细粒度的Javascript完成接口复用,控制代码冗余,从而避免在实现平台兼容过程中的代码膨胀。
在分布式网络环境中,可以将服务节点部署在网络中的任何位置,包括Internet云服务和局域网托管。通过init模块初始化服务地址,通过config指定地图插件的加载路径。基于上述架构设计,最终实现地图的离线应用和跨平台、跨浏览器的矢量绘图。
本发明提供一种实现异构地图平台之间技术兼容和数据共享,面向web及嵌入式地图应用,以widget组件封装为接口模式的地图开发框架。
本发明提供了一种具有高度伸缩性的GIS系统框架,向用户提供API接入服务,SDK可以采用Online云端部署,也可以进行本地部署。
提供在多种web服务器上的部署及功能拓展,例如Apache Tomcat、Ngnix、Jboss、WebLogic。
本发明采用基于Dojo的框架,以plugin widget插件模式提供IO接口,在部署及功能扩展具有高度的伸缩性,实现对ArcGIS、GeoServer、OpenLayers、Cesium、MapBox、OSM、Supermap的异构平台及其数据格式兼容支持,并且支持范围在不断扩展中。
本发明在一个框架中实现多层平台的地图接口复用和地图数据兼容共享,设计方法包括以下步骤:模块插件(Module Plugin);接口复用(Multiplex Interface),平台兼容(Platform Compatible),数据处理(Data Access)和地图展示(Map Display)。
如图7所示上述设计方法,具体包括以下步骤:
构建整体框架,按照所述整体框架实现的功能,以插件模式嵌入到整体框架中,通过接口输出服务;
基于Dijit模块的组件扩展功能,将功能接口组件化,通过接口复用进行异构地图平台的兼容;
对空间数据进行分类,以兼容异构平台;
对多平台的地图数据进行兼容处理;
基于web客户端页面开发,配置地图运行所需的Dojo框架,并配置核心服务地址以及地图功能组件的访问路径,进行地图展示。
模块插件(Module Plugin)。组件化已经成为前端框架的基础,随着web前端框架的丰富,为web地图应用提供了日趋成熟的框架技术支撑。我们的核心思想是:构建整体workframe,在具体实现上,按功能分类,以plugin插件模式嵌入到整体框架中,通过接口输出服务。Module是前端实例化的对象,widget作为其内部子集,负责具体功能的实现,并对外暴露属性、方法和接口协议。
Module的设计四原则是:强分布、低聚和、强适配、低耦合。强分布,本发明突出网络部署的特征,可以部署在网络任何节点中,包括公共互联网、内部局域网,或者与项目集成部署;低聚和指将Module中的功能进行细颗粒度的分解,增加隔离,消除冗余,强调接口的单一性输出。
以针对ArcGIS平台的底图切换功能为例,进行解释。我们以MapInitial命名空间输出地图初始化模块,在web端实现地图画廊的选择切换功能。客户端调用initial_ArcMap_102100(url)接口,参数url指定地图资源位置,在接口内部通过wkid=102100属性赋值,定义坐标系参考,实现web墨卡托坐标系的地图初始化及展示。客户端调用initial_ArcMap_4326(url)接口,参数url指定地图资源位置,在接口内部通过wkid=4326属性赋值,定义坐标系参考,实现WGS84球面坐标系的地图初始化及展示。
模块插件(Module Plugin)的设计目的是实现地图核心与前端UI和其他业务逻辑进行分离,从而实现更加灵活的定制化部署。基于上述目的,在dojoconfig中配置组件的相对路径,通过declare声明,输出命名空间,实现web端引入和Module之间的访问共享。
接口复用(Multiplex Interface)。组件化的目的是实现功能接口的输出。对异构地图平台的兼容通过组件内部的在接口复用实现。
以ArcGIS与OpenLayers为例进行差异性分析和实现方案对比的说明。在工程中,对同一个workLayer图层进行过滤查询,两者的工作机制迥异,实际上,这种差异实从一开始的地图服务发布及调用方式就明显体现出来。在代码级别的差异性更大,主要的差异体现图层类型定义、查询方法定义和图形渲染方式。因此针对相同或相似的功能,在异构GIS平台选型时,开发者仍会面临迥异的实现方案,甚至不得不在地图数据及其管理的源头寻求答案,这些原本不应该是编码人员该做的事情。在GIS项目的开发实施过程中,建立清晰化的问题边界对提高工程质量和进度有至关重要的作用。正是基于这个目的,本发明在接口中融入异构GIS平台的复用技术。
接口复用建立了清晰化的问题边界。在地图应用实施过程中,用户通常要面对并明确以下5个问题:1、What would you do?2、Where to get the layer service?3、Whichplatform running on?4、Which module to import?5、Which interface to access?本发明的接口复用技术,为上述问题提供解决方案。接口复用基于Dojo的Dijit组件扩展功能。我们在Dijit中,扩展对地图平台的异构支持,实现兼容和数据共享。
平台兼容考虑到空间数据的复杂性,本发明对空间数据分类以兼容异构地图平台原则为出发点,围绕着Map function module和Map interface multiplex进行设计。地图服务接口遵循OGC规范,提供对WMS、WFS、WCS、KML服务接口支持,从而实现异构平台模型数据共享。在此基础上,增加对ArcGIS中MapServer、FeatureServer、ImageServer,以及GeoServer中Tilecache切片图层等特异性功能支持,完成更为精细化的地图操作。
为支持多数据源,我们在Spacial data module中增加对shp、gdb、mdb、tab、cad、json、geojson、kml、csv、excel等数据格式支持,并通过SDE(Spacial Data Engine)module实现地理数据库存储。我们在Map scene module中内置2D map view engine、3D mapscene engine,支持二维及三维地图功能。本发明的三维场景引擎,已实现对ArcGIS、Cesium、Mapbox等异构GIS平台的支持,实现对Terrain、OSGB、Dea、Multipatch、SLPK、3dtiles、Gltf等三维模型数据的解析、渲染、成图及查询。内置图形渲染引擎基于webGL,具备为HTML5Canvas提供3D硬件加速功能,能够实现更为平滑三维场景。
在平台兼容实现中,坐标系转换和重投影技术是重要的环节。GIS系统中的坐标系涵盖GCS(Geographic Coordinate System)与PCS(Projected Coordinate System)。GCS属于球面坐标系统,表示空间立体坐标,PCS属于投影坐标系,表示平面坐标。从遥感测绘数据到最终的web端展示,往往要经过GCS到PCS的转换过程。从GCS到PCS的转换,本发明支持相同、异构,2D、3D地图平台间,局部或整体图层及其图层上局部或整体要素的批量坐标系转换和位置校正。
数据处理中,首先实现坐标系转换,我们采用web-CSTranslate Module-SDE(Spatial-Data-Engine)三层架构方式,web前端实现地图操作,Geo Database负责坐标数据存储,SDE空间数据引擎提供Geo Database连接驱动。CSTranslate Module输出遵循OGC规范的wfs服务接口。在接口中,我们通过getGeometry()方法,获取图层要素的坐标信息,提供applyTransform()方法,实现从原坐标点到目标坐标点的位置转换,然后通过WFSTSerializer接口,将数据序列化为符合http传输的字符串格式,最终通过httprequest,以XML数据流模式更新到地理数据库中。
数据处理兼容异构地图数据库的实现,包括以下实现步骤:
配置空间数据库,空间数据库包括:Oracle、SQL Server、PostgreSQL、MySQL。ArcGIS Server适配选项中,排除MySQL数据库,支持Oracle、SQL Server、PostgreSQL,PostgreSQL无需postgis bundle插件支持。GeoServer适配选项中包括:Oracle、SQLServer、PostgreSQL、MySQL,PostgreSQL需要postgis bundle插件支持。
配置数据库客户端连接,ArcGIS体系中,我们遵循如下原则:1.版本对应原则,64位Server对应64位客户端程序;2.数据版本化管理,版本化管理的特点是实现地图数据的分布式存储,每一个节点保存一份本地副本,副本之间相互隔离,最终通过数据管理员统一提交,更新到基表。
配置地图服务器,包括服务器配置和地图服务的发布。
在ArcGIS Server地图服务中,涵盖遵循OGC规范的WMS、WFS、WCS,以及更加高性能的FeatureServer,其作用是实现自有体系内的要素图层服务,获得更高效地图编辑功能。GeoServer本身即是遵循OGC规范的地图服务容器,可托管在web服务器中,提供遵循OGC规范的WMS、WFS、WCS。
进行跨域配置,实现地图服务的跨域访问。
地图展示实现web客户端页面开发,配置地图SDK运行所需的Dojo框架。在Init和dojo中配置核心服务地址,在dojoconfig中配置plugin地图功能组件的访问路径。
在本发明支持前端框架采用三层结构处理。包括以下特点:
地图逻辑与前端页面完全分离,只通过dom id进行耦合,dom id在组件初始化或接口调用过程中,以参数方式传递。
地图逻辑与其他业务逻辑完全分离,互不影响,如有必需的数据耦合,例如获取生产数据并显示在地图上,我们可在中间层,以Ajax方式进行异步的数据请求,返回数据通过回调函数,在核心层实现地图加载展示。
前端整体为:页面-接口-地图SDK Module三层独立结构。
地图SDK Module采用核心封装,以plugin widget模式与具体功能对应,通过实例化接口输出服务,提供API协议和用例文档。
以Cesium平台中,在Mapbox自定义三维地图基础上,集合kml/kmz数据,实现BIM模型空间定位为例,包括以下实现步骤:
首先kml(Keyhole Markup Language)是一种由Google旗下Keyhole公司开发的,基于xml格式的,用于描述和保存地理信息(如点、线、图像、多边形和模型等)的编码规范,可以被Google Earth和Google Maps识别并显示。在2008年被OGC(Open GeospatialConsortium,Inc.开放地理信息系统协会)宣布为开放地理资讯编码标准,变成一种国际标准,开始支持多种地图厂商的地图产品。kml数据的主要作用是,通过其内在的数据结构,可以在地图或立体空间中按照其规定的区域、边界、线条颜色、宽度、空间填充进行渲染,形成独立的区域。如果kml文件中连接了本地其他文件,如图片,则可以通过压缩包的形式输出,这就是kmz,因此kmz即是包含kml及其链接的本地资源的压缩包。
1、首先在CsmSceneViewer模块中,通过Constructor构造函数,创建模块。定义scene3Donly属性,目的以3D模式绘制以节约GPU资源;定义Animation属性,目的进行动画控制。
2、调用MapboxStyleImageryProvider接口,通过accessToken,进行令牌认证,通过styleId加载来自于Mapbox的自定义地图资源。
3、通过Cesium3Dtileset接口,加载3Dtiles模型数据。通过scene.primitives.add方法加载到三维场景中。
4、加载kml数据,一个具体的kml数据格式如下:
Figure BDA0003099010220000181
Figure BDA0003099010220000191
Figure BDA0003099010220000201
文件中通过id定义区域id;name定义区域名称;LineStyle定义边界线型及颜色;PolyStyle定义区域填充色;coordinates定义代表区域范围的经纬度坐标数组。通过上述数据定义,完成对一个具体区域的位置定义及特定空间的图形渲染。
5、调用KmlDataSource.load加载kml空间数据集,获取定为对象的空间坐标数据,在polygon属性中,通过PolygonHierarchy接口,完成空间位置及轮廓描述,通过material实现图形渲染,形成携带空间坐标值得polygon_对象。
6、通过.entities.add(polygon_)方法,将渲染后的空间对象添加到地图场景中。
7、通过.flyTo(polygon_)方法,指定Heading、Pitch、Roll三个欧拉参数,实现从当前三维场景中的任意位置,按指定方向角和线路,模拟真实场景效果,飞行到被定位的空间对象。
如图8所示,pitch是围绕X轴旋转,也叫做俯仰角,如果以镜头为第一视角,就是控制三维空间飞行中镜头上下方向的改变,值为正是顺时针旋转;为负则相反。heading是围绕Y轴旋转,也叫偏航角,如果以镜头为第一视角,就是控制三维空间飞行中镜头的朝向位置,这个角的改变,也就是左右方向的改变。roll是围绕Z轴旋转,也叫翻滚角,如果以镜头为第一视角,就是控制三维空间飞行中镜头的翻滚角度。
如图9所示,本发明还提供了GIS系统的部署方法,以兼容Vue框架,实现cesium三维地图应用为例,包括以下步骤:
准备部署环境,并安装依赖包,以加入运行依赖;
在config中加载地图框架的输出路径,以提供前端开发调用的框架接口;
加载开发组件,以引入输出接口;
进行组件实例化;
调用开发接口,实现地图功能。
在分布式网络环境中,将服务节点部署在云服务端或局域网托管端。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (10)

1.基于Dojo实现多平台异构兼容的GIS系统,其特征是,所述系统包括:
地图显示,通过token令牌方式或服务托管方式获取多平台的地图数据,进行二维三维显示;通过坐标系参考系统,设置EPSG坐标系代码,在边框中设置经纬度边界,进行图层管理;通过符号管理、配图样式设置或渲染属性设置进行场景管理;通过开发依赖、组件拓展、数据接口的配置,实现异构地图平台适配兼容;
地图工具,用于地图的缩放平移处理,基于俯仰角及旋转设置进行地图的三维控制,以及水平、高度和空间距离的地图测量;
地图渲染,用于符号样式定义,通过图形属性以及与图层属性数据的整合,进行图形图像渲染,构造面向应用的专题地图;在三维地图环境中,通过kml和kmz的配合使用,将空间模型数据与业务数据进行整合,实现三维模型的特异性渲染;
位置服务,通过定位装置的回传数据进行实时定位,异步处理中使用math组件,配合页面级的动画处理,形成运行的轨迹动画,并进行线路分析;
数据处理,用于对多种异构地图数据进行属性数据处理、空间数据处理和模型数据处理;
系统集成,用于工控传感和视频监控接口的集成,构建基于GIS的物联网络,实现地图大数据可视化和分布式大数据分析,在接口中实现图形化输出。
2.根据权利要求1所述基于Dojo实现多平台异构兼容的GIS系统,其特征是,所述GIS系统包括Core模块、Dijit模块和Dojox模块,所述Core模块、Dijit模块和Dojox模块均包括若干个子功能模块;所述地图显示、地图工具、地图渲染、位置服务、数据处理和系统集成均通过所述若干个子功能模块中的多个形成。
3.根据权利要求1所述基于Dojo实现多平台异构兼容的GIS系统,其特征是,所述GIS系统还包括地图数据存储端和地图服务管理端;
所述地图数据存储端,通过异构地图数据库访问接口,获取多平台地图数据库数据,进行GIS Server端数据库托管,实现与地图服务管理端的对接;
所述地图服务管理端,包括地图访问及数据处理接口,用于对异构地图平台及数据存储的共享访问及处理。
4.基于权利要求1-3任一项所述GIS系统的设计方法,其特征是,所述设计方法包括以下步骤:
构建整体框架,按照所述整体框架实现的功能,以插件模式嵌入到整体框架中,通过接口输出服务;
基于Dijit模块的组件扩展功能,将功能接口组件化,通过接口复用进行异构地图平台的兼容;
对空间数据进行分类,以兼容异构平台;
对多平台的地图数据进行兼容处理;
基于web客户端页面开发,配置地图运行所需的Dojo框架,并配置核心服务地址以及地图功能组件的访问路径,进行地图展示。
5.根据权利要求4所述的设计方法,其特征是,所述接口复用中包括进行差异化分析和实现方案对比,所述差异包括图层类型定义、数据接口协议、查询方法定义和图形渲染方式。
6.根据权利要求4所述的设计方法,其特征是,所述兼容异构平台的实现包括:
在Spacial data module中增加对shp、gdb、mdb、tab、cad、json、geojson、kml、csv和excel数据格式支持;
通过SDE module实现地理数据库存储;
在Map scene module中内置2D map view engine、3D map scene engine,支持二维及三维地图功能;
进行坐标系转换和重投影计算,支持多地图平台间图层及图层上要素的批量坐标系转换和位置校正。
7.根据权利要求4所述的设计方法,其特征是,所述对地图数据进行兼容处理的实现过程为:
配置空间数据库;
配置所述空间数据库与客户端的连接;
配置地图服务器,包括服务器配置和地图服务的发布;
进行跨域配置,实现地图服务的跨域访问。
8.根据权利要求4所述的设计方法,其特征是,所述地图显示支持前端框架采用三层结构处理,包括以下特点:
地图逻辑与前端页面分离,通过dom id进行耦合,dom id在组件初始化或接口调用过程中,以参数方式传递;
地图逻辑与第三方逻辑分离;
前端整体包括页面、接口和地图SDK Module三层独立结构;
地图SDK Module采用核心封装,以plugin widget模式与实现的功能对应,通过实例化接口输出服务,提供API协议和用例文档。
9.基于权利要求1-3任一项所述GIS系统的部署方法,其特征是,所述部署方法包括以下步骤:
准备部署环境,并安装依赖包,以加入运行依赖;
在config中加载地图框架的输出路径,以提供前端开发调用的框架接口;
加载开发组件,以引入输出接口;
进行组件实例化;
调用开发接口,实现地图功能。
10.根据权利要求9所述的部署方法,其特征是,在分布式网络环境中,将服务节点部署在云服务端或局域网托管端。
CN202110622064.5A 2021-06-03 2021-06-03 基于Dojo实现多平台异构兼容的GIS系统及其设计、部署方法 Pending CN113282697A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110622064.5A CN113282697A (zh) 2021-06-03 2021-06-03 基于Dojo实现多平台异构兼容的GIS系统及其设计、部署方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110622064.5A CN113282697A (zh) 2021-06-03 2021-06-03 基于Dojo实现多平台异构兼容的GIS系统及其设计、部署方法

Publications (1)

Publication Number Publication Date
CN113282697A true CN113282697A (zh) 2021-08-20

Family

ID=77283426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110622064.5A Pending CN113282697A (zh) 2021-06-03 2021-06-03 基于Dojo实现多平台异构兼容的GIS系统及其设计、部署方法

Country Status (1)

Country Link
CN (1) CN113282697A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116168188A (zh) * 2023-03-17 2023-05-26 易智瑞信息技术有限公司 大范围倾斜三维数据的融合方法、系统及设备
CN116226131A (zh) * 2023-03-07 2023-06-06 易智瑞信息技术有限公司 一种多树结构下的多时相三维切片数据存储方法及装置
CN116304164A (zh) * 2023-05-17 2023-06-23 成都数联云算科技有限公司 一种地图编辑方法、系统、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103236024A (zh) * 2013-03-28 2013-08-07 国家电网公司 一种基于webgis的电力系统协同仿真系统
CN103577568A (zh) * 2013-10-30 2014-02-12 北京邮电大学 一种跨平台的移动安全综合信息聚合系统及其方法
US20140157106A1 (en) * 2012-11-30 2014-06-05 International Business Machines Corporation Dynamic building of a web page from widgets and resources specified in a uniform resource locator (url)
CN104572107A (zh) * 2015-01-12 2015-04-29 浪潮软件股份有限公司 一种基于DOJOJavaScript的WebGIS开发框架构建方法及装置
CN109857827A (zh) * 2019-01-31 2019-06-07 山东省国土测绘院 一种地理信息档案综合管理方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140157106A1 (en) * 2012-11-30 2014-06-05 International Business Machines Corporation Dynamic building of a web page from widgets and resources specified in a uniform resource locator (url)
CN103236024A (zh) * 2013-03-28 2013-08-07 国家电网公司 一种基于webgis的电力系统协同仿真系统
CN103577568A (zh) * 2013-10-30 2014-02-12 北京邮电大学 一种跨平台的移动安全综合信息聚合系统及其方法
CN104572107A (zh) * 2015-01-12 2015-04-29 浪潮软件股份有限公司 一种基于DOJOJavaScript的WebGIS开发框架构建方法及装置
CN109857827A (zh) * 2019-01-31 2019-06-07 山东省国土测绘院 一种地理信息档案综合管理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张翠玲: ""基于Dojo的GIS平台接口设计"", 《中国优秀博硕士学位论文全文数据库 基础科学辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116226131A (zh) * 2023-03-07 2023-06-06 易智瑞信息技术有限公司 一种多树结构下的多时相三维切片数据存储方法及装置
CN116226131B (zh) * 2023-03-07 2024-03-19 易智瑞信息技术有限公司 一种多树结构下的多时相三维切片数据存储方法及装置
CN116168188A (zh) * 2023-03-17 2023-05-26 易智瑞信息技术有限公司 大范围倾斜三维数据的融合方法、系统及设备
CN116168188B (zh) * 2023-03-17 2024-02-02 易智瑞信息技术有限公司 大范围倾斜三维数据的融合方法、系统及设备
CN116304164A (zh) * 2023-05-17 2023-06-23 成都数联云算科技有限公司 一种地图编辑方法、系统、设备和介质
CN116304164B (zh) * 2023-05-17 2023-11-10 成都数联云算科技有限公司 一种地图编辑方法、系统、设备和介质

Similar Documents

Publication Publication Date Title
KR101996177B1 (ko) Bim/gis 통합 정보 제공 방법 및 장치, 그리고 이를 이용하는 시스템
CN113282697A (zh) 基于Dojo实现多平台异构兼容的GIS系统及其设计、部署方法
CN109829022B (zh) 一种融合监控视频信息的互联网地图服务系统及构建方法
CN112199750B (zh) 轨道交通建设管理的多格式集成方法及gis平台
US20130167049A1 (en) Geographic information service system
Singh et al. Web 3D GIS application for flood simulation and querying through open source technology
Van Oosterom et al. Bridging the worlds of CAD and GIS
CN106846431B (zh) 一种支持多表现形式的统一Web图形绘制系统
CN114186003B (zh) 一种实现网络动态地理信息服务的方法及装置
CN115100353A (zh) 生成数字孪生实例的方法、系统、电子设备及存储介质
CN113918669A (zh) 一种自然资源国土空间规划一张图系统的实现装置及方法
CN113096255A (zh) 一种基于WebGL三维视图同步融合非侵入式集成技术方法
CN115810064A (zh) 基于开源gis技术的地图制图与发布平台的构建方法
CN115859414A (zh) 一种全球尺度地理信息底图跨坐标系使用方法
CN115544311A (zh) 数据分析方法以及装置
CN112489210A (zh) 一种自主可控的三维立体自然资源一张图系统构建方法
CN114048110A (zh) 一种基于Antv的自定义可视化拓扑图的实现方法
Rao et al. Choosing the right GIS framework for an informed Enterprise Web GIS Solution
Byelozyorov et al. From real cities to virtual worlds using an open modular architecture
WO2016205519A1 (en) Hybrid map drawing display
KR20010075873A (ko) 개방형 지리정보처리 컴포넌트 시스템
Rahman Developing Three-Dimensional (3D) topological model for 3D GIS
CN208110601U (zh) 基于分布式集群的gis信息管理系统
CN116664589A (zh) 一种基于WebGIS的实景三维模型分割方法与系统
Klimke Web-based provisioning and application of large-scale virtual 3D city models

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20210820

RJ01 Rejection of invention patent application after publication