郭伟鹏,沈松雨
(1.广州城市信息研究所有限公司,广州 510665;2.公安部第三研究所,上海 200031)
本研究基于国家测绘地理信息相关技术标准和规范,依托自然资源部对坐标转换工作要求,面向对空间坐标转换有需求的各种企事业单位和个人,设计并研发出一款适用于常用坐标系互相转换,大体量数据快速批量转换,云模式部署的支持多共享赋能途径的空间坐标转换系统,为相关用户提供稳定的服务支撑。云模式环境,通过弹性的云服务对系统自身服务进行调整,解决传统在线服务系统中存在的问题[1]。
1.1.1 设计原则
考虑到空间坐标转换需求的专业性、广泛适用性特点,本研究在设计过程中主要遵循以下几个设计原则。
(1)完备性原则。本研究设计时要充分捕获坐标转换工作中的实际需求,设计开发的系统应具备常用空间坐标系统之间转换的基本能力,覆盖系统主要使用场景。
(2)扩展性原则。在不缺少必要功能的情况下,空间坐标转换系统应具备良好的可扩展设计,比如方便新的坐标转换类型或转换算法的添加,而不侵入系统的总体结构和布局,以便于快速适应坐标转换方法的扩展。
(3)统一性原则。系统中的各个部件需要遵循相关标准、规范和要求,并且在不同使用场景下具备相对的统一性,如参数配置入口、坐标转换类型选择等。
(4)易用性原则。系统的功能设计和用户交互界面设计应充分顾及用户的工作场景和操作习惯,帮助用户快速高效地完成坐标转换工作。
(5)可靠性原则。根据地理数据的特点,系统需要满足大数据转换和多数据批量转换的需求[2]。系统需要具有较高的可靠性,保障转换的成功率,避免用户做重复无效操作,从而使用户提高工作效率。
(6)高效性原则。随着移动互联网、智慧城市、物联网和云计算等前沿科学技术的快速发展[3],日常办公对效率的要求越来越高,系统需要具备大体量数据批量坐标转换能力。
1.1.2 逻辑架构设计
系统逻辑架构如图1所示。
图1 逻辑架构
系统基于自然资源部相关坐标转换标准规范和坐标转换四参数、七参数等转换模型设计开发,兼容阿里云、腾讯云、华为云和天翼云等市场主流公有云平台。
IaaS是基础设施即服务(Infrastructure as a Service,IaaS),该层主要依托云平台的服务器、网络、负载均衡和容器等资源,作为系统的基础支撑部分。
PaaS是平台即服务(Platform as a Service,PaaS),该层主要是依托云平台的存储组件,包括系统数据库Mysql,缓存数据库Redis,文件数据库Mongodb或对象存储,实时计算引擎Spark2。
DaaS是数据即服务(Data as a Service,DaaS),该层通过对数据、服务等资源的集中化管理,形成数据服务的方式注册到空间坐标转换服务共享网关上,统一对外提供服务。
SaaS是软件即服务(Software as a Service,SaaS),该层是将坐标转换系统作为软件工具直接提供给用户使用,不需要用户在本地安装软件,便于用户随时随地使用本系统。
1.1.3 功能结构设计
系统功能结构如图2所示。
图2 功能结构
系统包括登录首页、系统介绍、开发帮助、系统管理和坐标转换5个模块。其中登录首页主要完成新用户注册、用户登录验证;系统介绍则介绍了系统特点、坐标系的基本知识和转换模型介绍;开发帮助主要面向二次开发用户,用户可基于系统提供的JS API和服务API完成自己的坐标转换系统平台的开发,同时也提供开发指南类文档下载和问题反馈入口;系统管理主要负责用户管理、权限管理、角色管理和操作日志的记录;坐标转换模块是系统的核心模块,主要包括参数配置、坐标转换、批量坐标转换、转换成果Excel或逗号分隔值文件格式(Comma-Separated Values,CSV)导出功能。
1.2.1 转换模型
区域坐标系统转换有多种数学模型[4],不同坐标系成果之间的转换模型一般有二维和三维2种转换模式[5],空间坐标转换模型是本系统算法实现的核心功能。本系统主要以2017年国家测绘地理信息局组织制定并批准发布的测绘地理信息行业标准CH/T 2014—2016《大地测量控制点坐标转换技术规范》为基线,并参考其中的转换模型公式对二维七参数大地坐标转换模型、二维四参数平面坐标转换模型、多项式拟合模型、三维四参数空间直角坐标转换模型、三维七参数大地坐标转换模型、布尔莎模型和莫洛金斯基模型进行建立。其中,四参数模型是指采用2个平移参数、1个旋转参数和1个尺度参数描述2个平面坐标系之间的线性变换[6]。
CGCS2000是本系统坐标转换的核心,其模型参数如下。
原点:包括海洋和大气的整个地球的质量中心。
X轴:由原点指向格林尼治参考子午线与赤道面,即历元2 000.0的交点。
Z轴:由原点指向历元2 000.0的地球参考极的方向。
Y轴:与X轴、Z轴构成右手正交坐标系的方向。
其详细椭球体如图3所示。
图3 参考椭球体
椭球体参数如下。
α=6 378 137 m,
式中:α为长半轴,m。
f=1/298.257 222 101,
式中:f为扁率。
GM=3.986 004 418×1 014 m3/s2,
式中:GM为地心引力常数。
ω=7.292 115×10-5rad/s,
式中:ω为地球自转角速度。
需要注意的是,互联网地图的坐标通常以经纬度形式显示,不同互联网地图采用的参考椭球不同[7]。
1.2.2 批量坐标转换
批量坐标转换采用前端应用交互调用批量坐标转换服务,批量坐标转换服务驱动脚本提交Spark2任务,并将任务结果输入到文件数据库,将文件唯一标识id返回给前端应用的技术路线,其详细数据及操作流程如图4所示。
图4中,为避免非登录用户不合理地占用计算资源,首先批量操作需是合法用户方可使用,因此用户的第一个操作是登录操作。登录成功后用户可将待转换坐标的文档上传,并根据用户操作界面执行批量转换操作。大体量数据的批量转换操作是采用Spark2实时计算方式实现,因此内部先要提交Spark任务,并将文件加载后进行实时计算;计算成功后将成果文件上传到文件服务器,并将文件id反馈给用户。用户看到转换完成后,可对成果文件进行下载。本过程将大体量坐标转换工作分阶段处理,并通过实时计算方式实现,提高了转换效率和用户体验。
图4 批量流程坐标转换核心流程
1.3.1 开发环境
本系统的开发环境见表1。
表1 开发环境
1.3.2 运行环境
本系统的运行环境见表2(以部署实现的某公有云测试环境为例)。
表2 运行环境
1.3.3 运行效果
在表1开发环境下,七参数模型算法,北京54坐标转CGCS2000坐标系,批量空间坐标转换运行效果见表3。
表3 批量空间坐标转换运行效果
本次设计与开发成果表明,本系统支持CH/T 2014—2016《大地测量控制点坐标转换技术规范》要求的全部转换方法,并提供互联网地图厂商的坐标转换方法,支持坐标类型丰富。另外本文提出了基于实时计算引擎Spark2的坐标转换方法可有效提高批量数据坐标转换工作。同时本系统提供JS API和Web服务API供坐标转换开发人员使用。前端用户集成JS API即可在前端针对少量的坐标进行快速转换。Web服务API则支持服务器端二次开发。另外本系统作为软件即服务(SaaS)工具提供服务,提高了服务赋能方式。因此,本系统在坐标转换类型支持度、批量坐标转换效率和坐标转换赋能方式等方面均有一定的优势,对自然资源相关坐标转换开发和使用人员具有一定参考价值。