基于WebSocket和GeoJSON的WebGIS的设计与实现

2015-12-11 05:57丁克奎钟凯文周旭斌孙彩歌
测绘通报 2015年2期
关键词:服务器端空间数据人防

丁克奎,钟凯文,周旭斌,孙彩歌

(1.广州地理研究所,广东广州510070;2.广东省遥感与地理信息系统应用重点实验室,广东广州510070;3.中国科学院广州地球化学研究所,广东广州510640;4.中国科学院大学,北京100049;5.广东省国土资源技术中心,广东 广州510075)

一、引 言

人民国防是国防的重要组成部分,是为了防备敌人空袭、保护人民生命财产,政府动员并组织人民群众所采取的措施和行为[1]。自然灾害、人为灾难的频发和环境质量的不断下降,给人民的生命财产造成了巨大损失,并对各级人民政府及相关部门的应急管理能力带来了严峻的考验。因此,人民防空需要统筹战备效益、经济效益、社会效益、环境效益、轨道交通效益[2],实现人防工程的“平战结合”。加快防空防灾一体化建设是国家作出的重大战略决策,是人防信息化进程的必然要求。

近年来,云计算、物联网、大数据、移动互联、智能设备及各种技术之间的融合、跨界都取得了飞速发展,由于多方面原因,人防现代化建设采用最新理论和技术的步伐相对滞后[3-4]。为了突破地理时空局限,同时加快人防业务流程,并增强相关各部门之间在应急救灾中的合作和相关信息的共享,提高决策水平和效率,笔者基于ArcGIS Server API for Java Script开发了广东省人防公共服务平台。

二、关键技术

1.WebSocket

要实现Web应用的动态交互需要浏览器发出请求,服务器端接受并审核成功后返回处理结果,客户端浏览器将返回信息呈现出来。这种通信机制对于实时要求比较高的应用,不能保证客户端的信息是最新的,传统上使用折中方案,如轮询、长轮询和流技术,这些Ajax解决方案增加了编程实现的复杂度和服务器端负载,制约了应用系统的扩展性[5]。

WebSocket是 HTML5的一种新协议,在单一TCP连接上实现客户端浏览器和服务器之间的双通道通信,减少了不必要的网络流量与延迟,并提供了API供客户端调用,提高了开发效率,降低了开发难度。服务器端启动套接字监听程序来监听客户端连接请求,解析客户端WebSocket“握手”信息,依据协议标准[6]生成包含WebSocket协议头的回应信息。在客户端和服务器端“握手”之后,客户端和服务器端的 WebSocket连接就建立起来了,双方通过该通道传递信息,并且该连接会持续存在,直到其中一方主动关闭连接(见表1)。

2.GeoJSON

JSON是一种基于JavaScript的轻量级的数据交换格式,独立于语言和平台,可以自我描述,易于机器和人理解,以键/值(key/value)对的形式存在。GeoJSON是基于JSON的数据格式,可以对地理要素进行编码。GeoJSON对象包括几何特征、属性或属性集,几何特征遵循OGC简单要素规范(simple features specification,SFS)。GeoJSON定义了以下几种几何类型:Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon 和 GeometryCollection,属性包含几何对象及附加信息,以及属性集[7]。GeoJSON比基于XML数据交换格式的GML更为简洁,有利于地理数据的传输,客户端可以直接利用JavaScript进行解析[8-9]。

表1 WebSocket“握手”头信息

GeoJSON数据示例如下:

图1 系统体系结构图

ArcGIS Server REST接口响应客户端请求返回GeoJSON格式的地理数据。目前网上已经提供了各种语言和平台的JSON库[10],在客户端可以将解析的GeoJSON数据放在Web Stroage中,地理数据一般比较庞大,可以将数据存储在SQLite数据库中,避免重复请求并分担服务器端压力,HTML5内置支持SQLite。

三、系统总体结构

1.总体框架设计

广东省人防公共服务平台在B/S结构基础上采用4层体系结构,如图1所示。

1)数据层:包括人防专题数据、基础空间数据、人防办公业务数据和人防工程数据。

2)服务层:利用ArcGIS Server读取Geodatabase空间数据,通过REST接口提供Web服务,将一些GIS功能和关系型数据(办公业务数据和人防工程数据)结合在服务器端进行人防业务逻辑的实现,采用Web Services技术[11-12],以REST接口形式提供Web服务。

3)动态交互层:在客户端实行内容、形式和样式的分离,浏览器接收用户的数据服务请求和功能服务请求,利用WebSocket协议和服务器端进行GeoJSON数据的交换,在客户端解析数据,利用HTML5和JavaScript进行数据和功能服务的展现。

4)用户层:不同的用户具有不同的功能和服务权限。

2.数据库设计

系统数据库存储在关系型数据库系统Oracle 11 g中,其中空间数据(包括人防专题数据和基础空间数据)通过ArcSDE空间数据库引擎存储在Oracle 11 g,并通过Geodatabase进行数据库组织,业务数据(人防办公业务数据和人防工程数据)直接存储在Oracle 11g,并通过数据访问接口进行访问。

1)人防专题数据:包括人防警报器、地下人防工程分布、地铁、地下商场、重要经济军事目标、城市重要生产及危险物品等具有空间分布且与人防密切相关的数据。

2)基础空间数据:包括广东省全省TM影像,从1∶2500至1∶2 500 000的10种比例尺地形图,以及道路、铁路、街道、行政区划等矢量基础地理信息。基础空间数据采用ArcGIS Server提供的地图缓存技术,图片采用 PNG8格式,缓存格式采用Compact[13]格式。

3)人防办公业务数据:包括用户数据、日志信息、部门信息、单位信息、业主联系人等与人防相关的单位、个人及平台管理维护信息。

4)人防工程数据:工程建设、工程分期建设、工程异地建设、工程建设缴费、工程(设施)改造、工程(设施)拆除等与人防工程相关的状态、属性、设备及建设维护信息。

3.开发环境

系统采用Microsoft Visual Studio 2010作为开发平台,利用 ArcGIS Server API for JavaScript 3.6 开发方式,GIS服务采用ArcGIS Server 10.0,数据库使用Oracle 11g,服务器端语言采用 C#(.NET 3.5)语言,客户端使用HMTL5、CSS3和JavaScript。

四、功能设计与实现

广东省人防公共服务平台对不同人员和部门提供不同的服务和功能,广东省各级人防部门进行人防工程管理和人防业务处理,相关政府部门之间可以进行人防信息的共享和人防管理决策协作、向相关领导进行空间分析和空间决策支持,它还是公众查询人防信息的一个管理和共享平台。

平台功能包括以下部分(如图2—图5所示):

1)地图基本操作:放大、缩小、漫游、全屏、鹰眼、地图与遥感影像图的切换、行政区划目录树、图层管理等。

2)量算:进行坐标查询、长度和面积的测量。

3)人防工程管理:包括点、线、面状人防工程和相关地物的添加、删除、修改和管理。

4)查询检索:包括模糊查询、自定义查询条件、图数结合双向查询及利用SQL语句查询人防相关信息,以及查询结果信息的展示。

5)专题地图:可以查询防空袭部署图、防空袭敌情判断图、防空袭物资保障图、防空袭人员就地就近隐蔽图、防空袭人口疏散图等21个人防专题预案地图。

6)空间分析:缓冲区分析、路径分析、疏散分析,以及结合人防工程承载力、资源及人口分布等进行资源分配分析。

7)报表统计与分析:进行人防报表的查询和编辑、人防报表信息展示,以及相关人防业务的操作。

8)系统管理:系统基本设置如注册管理、日志管理、用户信息和角色管理、帮助。

图2 查询检索

图3 面积和长度测量

图4 缓冲区分析

图5 人防办公

五、结束语

广东省人防公共服务平台满足了人防“平战结合”的需求,在和平时期,提供人防信息管理与共享、人防办公,以及应急救灾;在战时,为指挥人员提供地图信息查询、图上作业,同时与卫星、应急指挥车、应急指挥中心对接,提供人防空间决策支持。平台还具备兼容性、可拓展性,以确保平台能不断优化升级,提供接口能与其他平台系统进行联动、衔接,为城市日常管理、应急指挥和人防提供了强有力的技术支持。

目前广东省人防公共服务平台提供的空间分析和空间决策能力相对还比较薄弱,如何将强大的GIS空间分析能力与人防相关领域知识相结合建立、加速和简化人防空间决策时间和流程,还有待进一步加强。

[1]国家人民防空办公室基本知识[EB/OL].2011-05-05.http:∥ www.ccad.gov.cn/view/zhishibolan/renminfangkong/rfjbzs/20110505/276.html.

[2]李运平.我国城市人防工程综合效益评价研究[D].南京:南京航空航天大学,2011:15-23.

[3]郗笃刚,刘玉,赵忠东,等.基于GIS与MIS集成技术的人防工程管理信息系统[J].测绘与空间地理信息,2010,33(2):69-72.

[4]钟凯文,黄建明,梅其岳,等.基于WebGIS的广州市人防工程地理信息系统研制[J].热带地理,2003,23(2):130-133.

[5]使用 HTML5 WebSocket构建实时 Web应用[EB/OL].2011-12-05.http:∥www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/.

[6]RFC 6455[EB/OL].2011-09-01.http:∥datatracker.ietf.org/doc/rfc6455/?include_text=1.

[7]The GeoJSON Format Specification[EB/OL].2008-06-01.http:∥geojson.org/geojson-spec.html.

[8]陈德权.基与GeoJSON的 WFS实现方式[J].测绘科学技术学报,2011,28(1):66-69.

[9]李细杰,邬群勇,蔡旺华.基于JSON的轻量级WebGIS模型与应用[J].测绘工程,2011,20(2):53-56.

[10]Introducing JSON[EB/OL].[2013-12-16].http:∥www.json.org/.

[11]谢喆,赵红蕊,唐中实.基于Web Services的GIS模型服务[J].测绘通报,2007(3):63-66.

[12]钟广锐.基于GIS Web Services的城市污染源管理信息系统的设计与实现[J].测绘通报,2009(8):50-53.

[13]何正国,杜娟,毛海亚.精通ArcGIS Server应用与开发[M].北京:人民邮电出版社,2013:81-92.

猜你喜欢
服务器端空间数据人防
建筑设计中的人防工程设计
基于北斗三号的人防警报控制系统及应用
人防结构设计疏漏的思考
Linux环境下基于Socket的数据传输软件设计
GIS空间数据与地图制图融合技术
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
网格化存储的几项关键技术分析
平时使用人防工程好处多