公共卫生GIS共享服务平台
1 系统详细设计
1.1 GIS共享服务管理
1.1.1 概述
GIS共享服务管理是本系统的重要组成部分,它实现了对各类地图数据、业务资源数据的集成统一管理,提供了一个平台级的管理解决方案,能够往下管理各类空间数据,网上支撑各类空间服务发布,是本平台的中枢系统。
集数据管理、服务管理、用户管理、系统管理于一体的统一管理服务,以标准的服务接口提供数据和服务的调用能力。
1.1.2 技术实现特点
GIS平台采用先进的系统设计方法,基于.NET组件式技术进行开发,提供不同层次的解决方案,可以全面满足网络GIS的应用需要。用户可以快速建立基于地图的Internet或Intranet的地理信息服务网站,也可以快速开发自己的地理信息服务系统。
本平台具有高性能,此外还具有多源数据集成、海量数据访问支持、服务器群集等高级特性;采用多级缓存结构设计;可以同时支持多种地图引擎协同工作等。
1.1.2.1 符合行业国际标准的地图服务
实现跟符合标准的OGC规范的地图服务器进行地图数据的交互。使得平台能够在自身不生产存储地图数量的情况下实现以第三方OGC服务为底层数据的平台应用。同时,本平台提供的所有地图浏览和查询服务均符合OGC的相关协议规范,包括WMS、WFS、WMTS等,从平台功能性和松耦合性的设计原则上来讲,应该针对OGC的主要地图服务接口封装一套介于地图引擎应用和OGC服务器接口之间的接口,该接口根据WMS、WFS地图服务接口规范封装相关的请求细节,方便地图引擎进行调用。
1.1.2.2 全组件化技术
全组件化的设计思想,作为一个成熟的Web GIS开发平台,在多个行业进行了广泛的应用。组件化设计的优点主要有以下几点:
- 通过采用全组件化结构,系统的可管理性大大增强,可以实现单点登录、集中管理。可以管理分布在分布式环境下的各个服务器和服务程序。
- 基于Java技术的组件具有自描述特性,不同组件封装了实现不同功能和不同目的的模块,从而使各个组件可以单独搭建和扩展,使系统的更新工作大大减少,兼容性得到增强。
- 内置的GIS服务引擎与三维GIS平台的数据处理和开发平台采用相同的体系结构,数据只需在服务器上进行配置即可直接使用,快速发布到Internet上。
- 组件具有良好的扩充性和开放性。各个层次的组件提供了丰富的接口和功能,松散的体系结构为系统的扩充提供了足够的扩展空间,用户可以通过继承或者聚合等软件重用方法,开发特殊功能的自定义行业组件或者更高层次的通用组件,统一集成到GIS平台平台中。
1.1.2.3 客户端与服务器多级缓存结构
服务器实现了高效的数据缓存和应用缓存,通过二次开发可以实现针对特定应用的处理缓存,随软件提供的客户端设计了巧妙的客户端缓存机制,可以大大加快地址定位和地图浏览的速度。
可以实现多级缓存模式,对应用及其相关数据进行高速缓存,从而大幅度提高海量数据的处理能力。
ü 应用数据缓存
启动应用服务时自动加载相关数据,从而减少每次用户请求都需要重新加载和卸载数据的时间。
ü 处理结果缓存
通过将需要长时间处理或变化较小的结果预存在磁盘上,用户请求可以直接读取结果而不必每次都进行处理,从而可以减少每次处理的时间,加快用户响应的速度。
1.1.2.4 应用无关性的跨平台开发接口
对于地图服务接口设计的标准性以及应用层无关性的先进理念,使得原本复杂的WEBGIS二次开发工作变得简易可行。大大缩短开发周期,提高效率。
ü 标准的应用层接口和应用层无关性
建立在地理信息平台基础之上的应用系统的类型是非常丰富的。这些应用系统最终将由不同行业的开发商使用不同的开发工具,设计不同的应用逻辑,所支持的其终端类型也从普通的计算机到具有文字短信功能的普通手机等,能够提供良好的应用开发接口和系统集成模型,即应用层无关性。
在应用接口层:在HTTP协议基础之上设计标准的地图应用访问协议并提供丰富的实用功能接口函数供应用系统调用,这样的设计符合工业标准,支持异构操作系统上的应用系统。
ü 跨平台多语言应用开发包
跨平台多层次二次开发接口。提供从组件库到客户端脚本的多层级二次开发API,支持Javascript语言,未来开源扩展支持Flex、IOS、Android、Windows Mobile(Phone)等多平台和开发环境语言
1.1.2.5 完善的日志系统
一个完善的日志系统是服务器端应用程序的必备重要辅助功能,为供系统管理员使用的分析模块。本子系统会在服务器访问日志的基础上,统计分析每天提交的请求数量,某地图功能被调用的次数、平均处理耗时等,最终生成分析报表。系统管理员可以根据这些结果评价系统目前的服务水平,分析系统的性能瓶颈。
系统服务日志数据库有详细的结构文档说明,因此如果系统管理员需要分析其他的内容,二次开发人员可以根据其需求定制查询逻辑。
1.1.3 数据中心
数据中心负责所有与地图数据有关的管理工作,像地图元数据、地图集、图层数据、POI数据和样式数据及上传后的原始数据等都由数据中心来管理。数据中心包括数据注册、数据订阅、数据同步等子系统。负责维护和管理数据的数据注册信息表、地图原始数据表、地图原始空间数据表和各种系统数据表等数据表,同时也负责为其它中心提供与数据操作有关的各种接口。
1.1.4 服务中心
服务中心负责所有与地图服务有关的管理工作,服务中心包括服务注册、服务维护、服务订阅、服务订购和服务同步等子系统。负责维护和管理服务的服务注册信息表、服务原始信息表、服务包信息表、服务功能信息表及其它与服务有关的系统表,同时也负责为其它中心提供与服务操作有关的各种接口。
1.1.5 用户中心
用户中心负责与用户有关的各种管理工作,它包括用户注册、用户维护、用户验证、用户权限管理、用户查询等子系统。负责维护和管理用户的基本信息表、用户权限表、用户组表、用户动作表等数据表,同时也负责为其它中心提供与用户操作有关的各种接口。
用户中心管理构建出用户“租用”模型,即系统该平台可以为其他用户(包括不同部门、行业、应用)以租用的方式提供服务。
1.1.6 管理中心
管理中心负责保证引擎系统的正常运转工作,它包括参数配置、引擎监控和日志分析等子系统。
管理中心可以随时监控位置大数据平台“租户”的调用情况
1.1.7 统一标准API
1.1.7.1 概述
作为GIS服务共享平台的一个主要理念的体现和功能的载体,设计开发一系列统一标准的服务API是必不可少的。外部系统和用户访问本平台的数据和功能的主要途径,即应该是通过统一API进行,API是共享平台的一个窗口和通道,是平台松散耦合架构设计的集中体现。
本系统设计符合国际和行业标准的、跨平台的数据和服务能力共享API,支撑各类应用和模块的内外部调用。
1.1.7.2 统一开放接口
在面向服务架构基础上,针对应用层的调用需求,提供应用开发接口,扩展本平台的支撑度,方便与其他业务子系统集成和调用。前期实现基于JS的开发接口。
u Javascript API:提供面向javascript语言的开发类库,完全基于javascript快速构建空间应用。
1.1.7.3 OGC标准协议
OGC(Open Geospatial Consortium,开放地理信息联盟)制定了一系列地理信息服务标准规范,规定了数据服务的标准接口,开发者根据接口标准实现数据服务。针对新的Mapservice进行注册,权限设置等。OGC是空间信息行业的标准组织,其制定的相关接口规范被视为国际行业标准,具备极强的跨平台通用性和平台松耦合性。
OGC协议应用流程图
实现跟符合标准的OGC规范的地图服务器进行地图数据的交互。使得平台能够在自身不生产存储地图数量的情况下实现以第三方OGC服务为底层数据的平台应用。因此,从平台功能性和松耦合性的设计原则上来讲,应该针对OGC的主要地图服务接口封装一套介于地图引擎应用和OGC服务器接口之间的接口,该接口根据WMS、WMTS、WFS地图服务接口规范封装相关的请求细节,方便地图引擎进行调用。主要实现以下功能:
v 封装HTTP协议:封装GET和POST协议,实现HTTP请求的发送和接收,包括请求协议的拼装和响应协议的解析。调用者自身不需要关系HTTP请求的网络通信实现机制,也不必关心具体HTTP请求和响应的拼装和解析。调用者只关注于地图查询逻辑和查询结果的接收后的业务应用。
v 封装地图数据服务协议:OGC的地图服务协议有多种,每种地图服务都有自己的一套规范,例如WMS、WMTS是基本的地图服务之一,实现向客户端输出渲染好的地图、以及相关的地图详细信息。WFS主要是实现地图图元的查、增、删、改等相关功能。这些地图服务请求和响应都有自己的相应规范。在本平台中,针对不同的地图服务和请求类别,将不同地图服务和请求类别的请求参数规范都根据OGC的相关规范封装起来,将地图请求和查询逻辑转换为符合OGC规范的接口请求协议,并将OGC服务器返回的响应解析根据OGC规范解析成地图成果或者地图图元空间信息,所有的业务逻辑在这里得到转译和封装。所有的OGC标准的请求和解析都是通过调用此功能包提供的相关类的相关方法进行的,OGC服务器和地图服务接口对平台应用来说是透明的,应用层不需要关心OGC的相关接口和规范细节。
1.2 地图服务功能详细设计
1.2.1 概述
建设空间和属性数据统一检索门户,用户可以通过输入相关关键词,对在线所有数据库进行检索和显示。
用户可以通过Web客户端浏览所发布的矢量、栅格数据,地图图通过特定字段与DBMS中的若干张业务属性表相关联;根据选取的比例尺及相关属性,在平台生成相关跟业务模型相关的专题矢量图供用户浏览。
1.2.2 基本地图操作功能
1.2.2.1 全图
l 功能概述
显示电子地图全貌。可以查看整个行政区域的全貌。
1.2.2.2 放大
l 功能概述
实现矢量地图的任意比例尺的放大,通过鼠标在地图上拉框拖动或点击的方式进行地图放大,随着地图的不断放大,地图上显示到信息将会逐渐详细,使得地图显示到内容越来越丰富。
1.2.2.3 缩小
l 功能概述
实现矢量地图的任意比例尺的缩小,通过鼠标在地图上拉框拖动或点击的方式进行地图缩小,随着地图的缩小,地图上显示到信息将会减少以达到最好的显示效果。
1.2.2.4 漫游
l 功能概述
移动地图,将地图视野以外的地图移动到视野内。可按住鼠标左键任意拖动地图,使之达到理想位置。
1.2.2.5 测距
l 功能概述
用户可以在地图上,沿着自己想要测量的线路,用鼠标单击地图,在上面画出一条直线或者折线,然后,在结束点双击,即可得到这条线所代表的实际线路的距离。对于折线,将显示当前直线段的长度及已画折线的总长度。
1.2.2.6 鹰眼
l 功能概述
显示全市地图的缩略图,通过鹰眼图快速移动地图视野到指定区域,或者看目前的主地图窗口在全市范围的那个区域。
1.2.2.7 地图定位
l 功能概述
对地图上的任一或多个对象进行显示定位,用高亮等特殊效果进行定位。
1.2.2.8 刷新
l 功能概述
刷新地图。通过刷新清除地图上因查询、定位、最优路径查询等操作造成的临地图时标记。
1.2.3 综合地图查询功能
1.2.3.1 模糊查询
通过输入名称关键字,进行地图对象的查询,可以查询道路、建筑物等基础地理信息,也可以查询各类专题数据,查询结果以列表的形式显示出来,同时可以点击进行地图定位,高亮显示,同时可以点击链接查看相关的属性数据。
1.2.3.2 属性查询
通过指定各类地理信息数据的属性字段的关键字进行针对某一或者组合属性字段的空间数据查询,并能够对查询出的空间地理对象进行点击地图定位。
1.2.3.3 点图查询
可以直接用鼠标在地图上点击查询,系统自动查询出点击位置的地图对象信息。
1.2.3.4 拉框查询
用户可以在地图上拉一个矩形框,系统自动查询出拉框范围内的地图对象信息。
1.2.3.5 拉圆查询
用户可以在地图上拉一个圆形区域,系统自动查询出圆形区域内的地图对象信息。
1.2.3.6 多边形查询
用户可以在地图上通过点击鼠标绘制一个任意形状的多边形区域,系统自动搜寻出该多边形区域内的地图对象信息。
1.2.4 业务属性数据整合
将外部已有多源业务空间信息,通过标准的整合流程和接口规范,转化为可以在地图上展现和查询分析的空间信息