秦汉林,卢成浪
(浙江机电职业技术学院现代信息技术学院,浙江 杭州 310053)
2019 年,自然资源部发布了《智慧城市时空大数据平台建设技术大纲》,指出时空大数据平台是数字中国时空信息数据库的重要组成部分,是智慧城市建设与运行的基础支撑。智慧城市三维地理信息共享,作为智慧城市时空大数据平台建设的重要组成部分,既是智慧城市建设中不可或缺的基础信息资源,也是其他信息平台数据交换共享和协同应用的载体。因为三维地理信息的类型繁多、结构复杂、数据量大,并且一直缺乏相应的数据共享服务标准和规范,导致三维地理信息数据的重用性低,区域和部门间的三维地理信息资源难以共享。
地理信息共享服务方面,Martinek P 和F.Prandi等提出,信息共享服务体系技术框架可以采用面向服务的体系架构(SOA)思想,具体实现有Web Service、CORBA 和DCOM 等方式。针对智慧城市的地理数据共享,可以采用SOA 服务来实现[1,2]。开放式地理信息联盟OGC 组织提出了SOA 的一套接口规范和服务标准,如WMS、WTMS、WFS 等二维地图标准服务。OGC 现有的服务标准主要是针对二维时空数据的,可以用来共享遥感影像,矢量道路等二维数据。OGC 组织还提出了W3DS(Web 3D Service)、WVS(Web View Service)三维地理信息服务规范,以及3DPS 的三维服务接口标准。3DPS 是一种抽象的接口服务标准,设计参照WMS 服务标准,目的是以互操作的方式提供三维的共享服务。
在国内,朱利鲁等针对资源共享存在的服务互操作和数据传输等技术瓶颈问题,提出一种时空大数据资源集成框架[3]。李德仁等提出了面向服务的数字城市共享平台框架,设计了地理空间信息共享平台的体系结构和基于SOA 的空间数据共享模型[4]。马春林,张晶等论述了地理空间数据资源共享交换平台,实现了地理空间数据资源的跨部门共享交换和开发利用[5,6]。郭仁忠等提出了面向智慧城市的GIS 框架,探讨了统一数据平台构建、数字孪生及可视化、开放式平台服务等关键内容[7]。耿晴等阐述了时空信息云平台建设的关键技术,通过面向时空信息数据的大数据平台设计,利用共享交换平台提供数据服务,实现海量数据的高效管理和服务[8]。张孝勇等提出一种基于3DPS的动态时空数据模型服务和共享方案[9]。
三维地理信息共享技术方面,邱天等研究了三维地理信息数据的物理结构特征和接口规则体系,提出了三维地理信息数据服务规范[10]。孙阳等综述了三维地理信息网络服务的发展情况,并提出了存在的问题及相应的建议[11]。吴掠桅,陈桂红等针对智慧城市的建设需求,提出了一种具备可实现性的网络服务共享接口规范,以期打破孤岛式三维GIS平台的现状,实现了智慧城市开展三维GIS共享应用的总体思路和实现策略[12,13]。曾文华,董莉等以三维GIS服务为主要研究对象,在分析三维GIS 研究背景情况下,研究了三维GIS的服务框架和接口[14,15]。
综上所述,国内外对智慧城市的地理信息共享展开了系列研究,研究主要集中在二维数据的共享服务上,在三维数据应用和共享方面还有很多可以改进的空间。相对于二维地理数据Web 服务,三维模型数据Web 服务的研究进展缓慢。没有一个国际认可的三维服务标准规范是制约三维Web 服务快速发展的主要原因之一,各个三维地理空间平台采用不同的技术路线、体系结构和数据格式,彼此之间难以跨平台访问和共享数据。本文研究了智慧城市三维空间数据共享的服务标准在OGC现有的服务标准基础上,使用WMS(WMTS)服务发布和共享地形高程数据和影像数据;使用WFS 服务发布和共享地名、道路等矢量数据,设计并实现了WFS 3D 服务,用来发布和共享智慧城市的三维建筑模型等矢量数据,提出了一种智慧城市三维模型共享服务和应用的实现方案。
为了实现智慧城市三维地理数据的共享服务和应用,提出一种地理数据共享平台的实现方案,地理数据共享平台的体系结构如图1所示。
图1 体系结构图
⑴地理数据层采用分块分类的组织管理方法来存储多源数据。数据使用地形DEM、影像DOM、道路DLG、地名等数据,以及真三维模型数据。地形、影像等栅格数据采用.tif格式,道理等矢量数据采用.shp格式,三维模型采用.dae格式。
⑵ 共享服务层采用开源的地理数据服务软件MapServer,实现标准的Web Services发布。和其他的地理数据服务软件相比,MapServer 使用C 语言实现,性能更加优越。服务类型可以选择WMS、WMTS 和WFS。地理数据的过程发布:首先从数据层选择地理数据,①选择是否使用WMS 方式或者WFS 方式。②如果WMS 发布,需要符号化地图数据,比如设置道路的颜色,接着选择是否使用WMTS 方式发布。③如果选择WMTS 方式,需要配置瓦片数据,比如设置瓦片的级别。
⑶客户显示层绘制引擎基于JOGL(OpenGL 的Java 版本),用来访问共享的服务数据。OpenGL 被设计成与硬件无关的,独立的三维显示接口,并能在网络环境下以客户端/服务器模式工作,是专业图形处理、游戏开发等高端应用领域的标准三维图形库。基于Java语言和J2EE框架,能很好地与其他系统集成,具有良好的安全性和可扩展性。
有很多开源的地图数据服务器可以使用,这些数据服务器都提供了标准的WMS和WFS等服务。
WMS 服务:即Web 地图服务,WMS 服务提供一个简单的HTTP 接口,通过它可以从分布式的地理数据库中获取到地图图像。一个WMS 的请求,根据包围盒的坐标定义了一个地理的图层。请求的响应是一个或者多个地图图像,这些图像可以在浏览器和软件中直接调用显示。WMS国际标准有三种操作。
⑴GetCapabilities:返回地图服务的元数据,描述了服务信息和请求参数,元数据是xml格式。
⑵ GetMap:返回一个地图的图像数据,格式是gif,jpg,png 等。请求的图像数据可以定义各种参数,如包围盒坐标,坐标参考系,输出图像的格式、宽度、高度等。
⑶ GetFeatureInfo:如果用户通过GetMap 操作获得一张地图图像后,可以点击该图像上的一个点来查询该图像上指定地点的地物信息,信息的格式可以是xml、gml等。
浏览器可以通过带参数的URL 地址,测试并得到相应的WMS 服务。比如一个URL 测试地址如下:http://192.168.1.100:8888/wms?service=WMS&request=GetMap&version=1.3.0&srs=EPSG: 4326&layers=test1,test2&width=512&height=512&bbox=30,116,31,117&format=image/png。
表1 WMS服务参数说明
WFS 服务:即Web 要素服务,支持对地理要素的插入,更新,删除,检索和发现服务。不同于WMS 的是,该服务专注于要素的地理信息,而忽略其渲染信息,简化了返回信息。浏览器可以通过带参数的URL 地址,得到相应的WFS 服务,比如一个URL 测试地址如下http://192.168.1.100:8888/wfs?version=1.1.0&TypeName=test1&Request=GetFeature&Service=WFS&OUTPUTFORMAT=GML2-GZIP;subtype=gml/3.1.1&BBOX=112.5,22.5,135.0,45.0。
智慧城市的地理数据,可以使用开源的地理数据发布软件,比如MapServer 发布成共享的数据。对于地形高程数据和影像数据,使用WMS 服务方式发布,如果使用瓦片系统,可以使用WMTS 服务方式发布,可以在发布的时候设置瓦片的层级。对于地名、道路等矢量数据的共享,使用WFS 服务方式发布,发布的时候,可以选择是否做符号化处理,比如设置道路的颜色。对于需要共享的建筑模型等三维数据,使用WFS 3D服务发布,发布的时候,设置每个点数据对应的实体模型名称、坐标位置和属性信息。
MapServer 采用零代码编写的配置文件方式管理发布地图数据,配置文件被称为Mapfile,文件的后缀名是.map。Mapfile文件可以参考Mapfile的章节说明手工编写,也可以使用图形化配置工具生成。
很多的Web 地图接口都使用瓦片系统,一幅精确到街道级别的国家地图图片,它的长度和宽度为数以百万计的像素,由于这些数据太大了,从而导致无法一次下载并且在内存里也无法一次加载。实际操作中,Web 地图由许多小的正方形的图片组成,这些小图片称作瓦片。瓦片的大小一般为256*256 像素,这些瓦片一个挨一个并列放置以组成一张很大的看似无缝的地图。瓦片系统是一种多分辨率的LOD 模型,采用一系列的金字塔图像结构,瓦片系统可以是卫星影像或者高程地形网格。当观测距离近的时候,采用高分辨率的瓦片。当观测距离远的时候,采用低分辨率的额瓦片。图2是WorldWind系统采用的瓦片系统。
图2 瓦片系统说明图
表2 度数、瓦片矩阵,每一层的瓦片数
从坐标经纬度(lat,lon)到行列的转换如下:
从行列到坐标左下角经纬度的转换如下:
WFS 3D:在研究WFS 服务的基础上,定义一套面向三维地理信息数据的服务,而非普通二维矢量服务的网络地图服务接口规则。该服务支持对三维地理模型的添加,修改,删除和查询服务,服务通过HTTP 客户请求返回GML 数据。服务定义了模型数据的地址、描述、坐标系统和属性信息。
WFS 3D设计的主要接口如下。
■GetCapabilities:必须提供的操作,获得请求服务的描述文档数据,返回GML 描述文件,比如服务提供商的基本信息,操作的元数据,要素类型的列表等。
■GetFeature:根据查询要求,返回符合GML 规范的三维场景的要素图层数据。返回数据中包括三维模型的读取路径,通过坐标包围盒的BoundingBox参数来获取数据范围。三维模型使用dae 格式,文件以GML 的形式存储继承。服务主要记录各级瓦片的空间逻辑关系和属性信息,以及模型与属性如何链接在一起的信息,服务中引入dae模型的文件位置和名称。首先修改MapServer 的源代码,在原有WFS 服务的基础上,添加WFS 3D 服务的代码实现。完善WFS 3D服务的GetCapabilities 和GetFeature 接口,使得这些接口可以提供三维场景的数据和属性信息服务。
浏览器可以通过带参数的URL 地址,得到相应的WFS 3D 的三维数据服务,比如一个URL 测试地址如 下 http://192.168.1.100: 8888/wfs3d? version=1.0.0&TypeName=test1&Request=GetFeature&Service=WFS3D&OUTPUTFORMAT=GML2-GZIP;subtype=gml/3.1.1&BBOX=112.5,22.5,135.0,45.0。在这个请求中,TypeName 表示服务请求的图层名称是test1,Request 表示服务请求的操作是GetFeature,Service=WFS 3D 表示使用的是WFS 3D 服务请求,request=GetFeature 表示执行获取要素信息操作,OUTPUTFORMAT 表示输出格式是GML2 格式。BBOX表示三维场景数据的包围盒范围。
项目实验的数据如下:影像和地形高程数据使用全国的基础数据,上面叠加高精度浙江省的区域数据,发布成WMTS 数据。三维场景是一个某城市的部分数据,范围大小为10 平方公里,模型数量超过2000个。实验1,使用WMS 发布和共享地形高程和遥感影像数据,结果如图3 所示。实验2,使用WFS 发布和共享地名和道路矢量据,结果如图4 所示。实验3,使用WFS 3D发布和共享三维模型数据,结果如图5所示。
图3 地形和影像数据共享
图4 地名和道路矢量数据共享
图5 三维模型数据共享
OGC 现有服务标准主要是针对二维地理数据的,在研究OGC服务标准的基础上,创新性的提出一种城市三维模型Web 共享服务的实现方案。通过分析国内外三维地理信息共享标准现状,研究三维地理数据的物理结构和接口规则体系,提出三维地理数据共享服务规范,满足开放性和共享性的要求,构建三维地理数据的统一接口描述规则。经过实验结果的验证,达到了三维地理数据共享目的。