当前位置:首页 期刊杂志

iOS平台下的雪龙监控系统设计与实现

时间:2024-07-28

黄冬梅 郭颖新 赵丹凤 何盛琪 刘健

(1上海海洋大学,上海201306;2中国极地研究中心,上海200136)

0 引言

由于历史原因及国力所限,中国科考船[1]的发展相对落后,多数考察船的设备未能及时更新,存在整体配套不完善、探测手段落后、覆盖范围小、网络信息化程度低等问题,难以满足新科考的要求。在世界各国争相发展海洋科学领域的今天,中国也对科考船提出了一系列新的要求。经过极地考察“十一五”能力建设的实施,中国极地研究中心对“雪龙”号破冰船进行了大规模的改造,更新和提高了设备及其性能,并且于2009年成功建设了“雪龙在线网络信息平台”。该平台借助海事卫星通信链路(BGAN),将考察船的实时航行动态信息和科考仪器数据与国内数据服务器同步,实现了科考船航行中各类传感器的数据实时采集、实时入库(数据库)、准实时(于互联网信息系统)发布等功能[2-3],但对数据的展示和处理局限于PC端和服务器端,对实时获取并发布最新信息、做出正确及时的反应产生一定的束缚。

随着移动终端设备的个性化、智能化、灵活化,获取实时信息的方式也从PC端逐渐转移到了移动端。使用移动端获取最新监控信息已成为一种趋势,如智能家居控制、温室蔬菜大棚温湿调控、医疗健康智能护理等。目前,“雪龙在线网络信息平台”主要提供Web端服务,用户需要通过联网设备的浏览器才能查看雪龙号相关数据信息。因此,设备及网络环境的局限性,成为限制相关工作人员获取实时信息、及时做出正确决策的一种瓶颈,而具有高性能、智能化、便携性的移动设备及提供地图定位等服务的雪龙号移动应用,能弥补在第一时间获取信息等多方面的不足。

近年来,国内外出现了较多与定位及运动轨迹绘制相关的地图类、运动类App,相关技术也逐渐成熟。国外的地图类App代表如Google Maps提供全面而精确的地图,具有兴趣点设置功能;移动众包应用Waze从各地的用户获取数据,实现基于GPS的社交功能;Bing Maps提供了某些地区的鸟瞰图等等。运动类Run keeper应用实现了设置运动目标,记录运动数据(包括瞬时速度、平均速度、距离等),利用GPS记录跑步路线的功能。国内地图类应用较为典型的有百度地图、高德地图等,具备2D地图、3D地图、卫星地图、室内地图等多底图展示功能,并且在定位、路线规划和导航方面实现了高智能化。运动类应用如咕咚运动基于GPS定位技术,实现了精确追踪运动路线功能[4-10]。以上具有对象定位、轨迹绘制功能的地图类和运动类应用,解决了移动终端定位、一定区域路径绘制等问题,但对“雪龙”号所具有的高频率和长时间的位置信息等海量数据在移动终端的可视化问题,及通过网络搜索获取最佳路径并参照地图对绘制路线修正方法等已经不适用。同时由于“雪龙”号的非移动终端GPS定位、数据准实时增量化等特性,现有的地图类和运动类等应用已经无法满足。

基于以上情况,本文设计并开发了iOS平台下的雪龙监控系统,方便移动互联网用户随时查看“雪龙”号准实时航行状态及其他多种传感器数据,达到移动平台监控的作用。该系统综合采用了多线程并发控制、ASIHTTPRequest类库异步下载、AGSMapView图层显示、关系型数据SQLite存取技术等多种先进技术,通过软硬件集成开发,具备了定位船只、动态刷新实时航线数据(如航速、水温等)、绘制实时航迹、展示预定航行和历史航线、推送最新其他相关信息等多项功能。该系统可部署于iOS 5.0系统以上的iPhone设备上,有助于相关人员随时随地了解“雪龙”号航情及部分详细数据,对“雪龙”号各项信息的监控,达到辅助决策的作用。

1 系统设计

雪龙监控系统是基于雪龙在线网络信息平台的数据采集、数据入库、数据处理的一体化流程,由国内后台服务器和前台客户端组成。具体系统架构及功能模块如下。

1.1 系统架构

从空间分布上,系统分为国内服务器端和移动端两个部分,“雪龙”号设备端及数据通讯网络由雪龙在线网络信息平台支持。国内服务器端实现数据接收、数据存储、Web服务发布等,移动互联网方面实现访问国内服务器Web发布的“雪龙”号动态数据。结合空间分布和系统功能,系统网络及结构图如图1所示。

图1 系统网络及结构图Fig.1.The system network and structure chart

国内服务器同步船上与航行状态的科研相关公用数据,包括罗经、测深、机舱、GPS、表层海水、气象、计程等数据,具体数据类别及相关参数见表1。采用Oracle11g数据库存储回传的抽样数据,以SBE表层海水数据为例,在各个数据表中都包含时间、位置信息,其数据表结构见表2。

表1 雪龙号相关数据类别及重要参数Table 1.The data type and important parameters of Xuelong

表2 国内服务器Oracle数据库中SBE数据表结构Table 2.The SBE data table in Oracle database of domestic server

移动互联网用户方面,开发的前台客户端是采用Objective-C语言[11],在 XCode中开发,遵照 iOS四层结构和框架,采用基于XML的数据传输技术,通过SOAP通信标准访问Web Service简单灵活的发送、接收数据,并使用轻量型SQLite数据库实现数据存取,学习敏捷思想[12]开发,参考iOS平台客户端应用开发规范[13]设计,实现了查看航次信息、航线中重点城市信息、实时航速和航向等功能。

1.2 系统功能模块介绍

根据系统应用需求及应用设计方案,该系统客户端功能结构分为前台应用层和后台处理层。前台应用层包括用户登录、地图航线展示、实时信息展示、考察船航次信息、消息通知、用户设置等模块,满足用户基本功能需求,后台处理层包括Web Service数据获取模块和SQLite数据存取模块,实现后台智能化操作。

(1)用户登录模块:普通用户免登陆,相关工作人员需要其特殊用户名和密码进行登录认证,可以收到相应的通知、公告等消息。

(2)地图航线展示模块:在主页地图中,默认可浏览当前最新航次的预计航线及实际航线,在右侧边栏三组科考类别中,可选择多条历史航线,在主页地图中查看并对比。同时各航线采用航次名与航线同色彩、不同航线的色彩异同的方式进行区分对比。

(3)实时信息展示模块:在主页地图下方,可浏览“雪龙”号当前航行状态信息,包括航速、航向、风速、风向等六种数据;在左侧边栏,可直观的查看位置信息、罗经信息、气象信息等类别的详细参数。

(4)考察船航次信息:选择科考航次,弹出对应航次的介绍信息。

(5)消息通知模块:系统实现对考察船到达某城市和考察站、考察船中船员活动等信息推送。

(6)用户设置模块:用户享有个性化设置,如对地图最大化显示、消息通知、对比航线条数、夜间模式等设置。

(7)Web Service数据获取模块:对各类web数据,通过调用Request Post异步方法获取数据并解析。

(8)SQLite数据智能存取模块:系统保存本地用户信息,记录个性化参数设置,实现各模块web数据的智能存取。

2 关键技术

该系统开发过程中,根据 MVC(Model-View-Controller)设计模式,使用多种技术相结合的方式,包括TableView、MapView、Button等多种控件的调用,高效的iOSDelegate设计技术,以及快速筛选海量数据的信息技术等。在这些技术中,突出解决了一些问题,如下是三个方面的关键技术详细介绍。

2.1 面向移动端的海量数据快速筛选技术

随着传感器设备种类的增多及性能的提高,考察船勘测设备采集的数据种类不断增长,且其采集频率逐渐加快,数据库中的数据量呈上升型的倍数级增长。面向格式多样化、类型复杂化及数据量海量化的数据,很多学者基于PC端提出了相应的处理技术,但由于移动终端设备的软硬件处理能力的限制,使得现有的处理技术无法直接应用于移动终端的海量数据处理。因此,本文采用对数据进行筛选的方法,解决移动端软硬件处理能力有限和数据更新速率快和类型复杂的矛盾问题,通过海量复杂类型采集数据的筛选在保证显示精度的同时降低移动终端的处理压力,提高从数据采集到结果显示的时效性。

针对移动端的特点,研究的筛选方法有多种,已采用有SQL-N筛选法和拐点筛选法。例如在筛选航迹位置信息时,两种筛选方法如下。

(1)SQL-N筛选法:在请求数据的Soap消息中,封装SQL语句条件进行筛选。首先确定筛选N条,即如筛选1 000条数据,其次做索引处理,按T_LOG记录日期升序排序,最后获取重要的有序关键点数据。SQL语句(其中MISSIONID为科考航次)为:

select LATITUDE,LONGITUDE FROM(select ROWNUM rn, T_LOG, LATITUDE, LONGITUDE from(select*from HD_gps where MISSIONID=24 ORDER BY T_LOG ASC))WHERE MOD(rn,round((select count(*)from HD_gpsWHERE MISSIONID=24)/1000,0))=0。

随着数据采集频率的不断提高,多条数据中筛选出一条数据的影响越来越小。同时,由于移动端的显示界面大小的局限性,对精度的要求不及PC端高,因此适当点数的筛选,对移动终端的处理及展示有极大的帮助。

(2)拐点筛选法:分次获取所有某条航迹的全部数据,对相邻三条数据进行拐点判断计算,例如每次获取1 000条数据,其SQL语句为:

select LATITUDE,LONGITUDE FROM(select ROWNUM rn, T_LOG, LATITUDE, LONGITUDE from(select*from HD_gps where MISSIONID=28 ORDER BY T_LOG ASC))WHERE ROWNUM<=1000。

对(已按时间排序)相邻三条数据中经纬度组成的三点坐标连线,计算两条线段所组成夹角的角度α,当角度(180°-α)接近于0°时,可认为三点组成的航迹在一条直线上;否则,可认为中间点是重要的拐点,添加在地图上(起点、终点已添加入地图)。对重要拐点信息存入SQLite关系型数据库中,达到一次处理多次使用的作用。

通过该方法筛选出关键拐点,绘制出的航迹与实际航线的近似程度与设定的角度系数相关。其优缺点是,角度系数与180°差值越小,筛选出的拐点越多,航线越精确,但处理后的拐点较多,筛选效果降低;角度系数与180°差值越大,筛选出的拐点越少,但绘制的航线越粗糙。适当的角度系数与地图的缩放比例相关,其实验还在进一步进行中。α的确定,将有助于移动端更好地展示航线。

2.2 移动ArcGIS图层显示技术

ArcGIS是面向用户的制图平台,可创建交互式地图和应用程序,并与组织中的其他人员共享。在系统移动终端的GIS功能中,使用了其提供的5种移动应用解决方案中的ArcGISRuntime SDK for iOS满足移动应用需求,如通过设置Map图层实现绘制航迹、添加Callout标注、显示实时地图信息等功能。该系统同时采用在线数据源,多种动态底图服务地址切换,包括世界地图服务、卫星影像服务、海洋暗色自主地图服务,来源分别是公共ArcGIS REST Services中的 World_Street_Map服务、公共 ArcGIS REST Services中ESRI_Imagery_World_2D服务、自主JDMapServices(http://202.121.66.51:6080/arcgis/rest/services/JDMapServices/底图/MapServer)服务,默认加载第一种地图服务。通过使用Objective-C语言调用ArcGISRuntime SDK for iOS的服务实现图层显示控制,发挥其强大地图和分析功能为雪龙监控系统服务。

ArcGISRuntime SDK for iOS在图层显示控制中分为服务的显示控制和图层的显示控制。服务的显示控制使用AGSMapView Class实现。在根控制器RootView Controller中加载AGSMap View对象实例,并进行显示设置。在地图定位缩放功能中调用AGSEnvelope类,通过设置extent Delta值,实现地图的动态缩放、平移的功能。单服务多图层的显示控制使用AGSDynamicLayerView和AGSTiledLayerView实现,通过设置 visibleLayers,确定图层是否可见。通过AGSTiledLayer的扩展实现异步获取切片数据操作、获取切片服务的缓存规则、底图加载等,同时调用AGSMapView Class的方法实现自定义地图行为及委托类、动态绘制雪龙号位置、增添实时及历史航线图层的功能。

2.3 地图中绘制Path通过180°经线技术

在航迹绘制时,许多航迹需要通过180°经线,而在180°经线两测的两点连线不能够直接连接,需反绕地球一圈连接,如图2所示。

图2 航线经过180°经线的中断-反连图Fig.2.An interruption and reverse connection chartwhich route across 180 degrees longitude

在地理坐标系中,以-180°/+180°作为东西方向的边缘(即X轴),以-90°/+90°作为南北方向的边缘(即Y轴),此范围称为坐标系的“视界”,所有地面点以二维数据形式记录。从数学或坐标系角度出发,+180°经线和-180°经线是不连续的,即距离无穷远的间断点,在地理数据库中,跨越该边缘的要素将被裁剪,只保留视界之内的部分。

本系统在ArcGISRuntime SDK for iOS的AGSMapView中加入插件,用于绘制180°经线两测连线。问题描述如:在ArcGIS地图中,点A和点B分别位于180°经线两测,两点连线不能直接穿过180°经线L,即A、B两点不能直接相连。

该插件主要思想如下:在地图中,将跨越180°经线的连线裁剪,分割为180°经线两侧的两个部分,假设C为AB与L的交点(C未知),180°经线上C有两个同纬度的临近点E和F,使两条线段AE和FB斜率近乎一致,则AE和FB两部分近似于ACB连线,也近似于AB两点连线,即可代表AB连线通过180°经线。此插件在该系统中成功地实现了跨越180°经线的航线绘制问题。

3 雪龙监控系统功能演示

面向移动互联网用户,该系统的监控界面如图3(a)所示,其主要功能模块如下。

3.1 雪龙号监控数据准实时展示

进入App主页,如图3(a)所示,顶部是标题栏,可单点触控,左右滑动进入对应侧边栏。中间为在线地图,下面为准实时监控中重要数据的显示,即航速、航向、风速、风向、水温、水深的最新数据,每60 s自动刷新一次,同时可手动下拉刷新。

3.2 “雪龙”号计划航线及实际航线浏览

雪龙监控主页地图上,灰色虚线显示为当前“雪龙”号的计划航线,黄色实线为当前“雪龙”号科考航次的实际航线,雪龙船的位置是每60 s定位一次,若位置变化,则实际航线动态添加航迹一次。地图中,可多点触控缩放或双击放大,左上角有“雪龙”号定位图标,点击即可缩放范围,定位到“雪龙”号的当前位置。

3.3 雪龙监控GPS、罗经、气象等最新信息浏览

在主页标题栏上,向右滑动或点击左上角按钮,展开左侧边栏,分组显示位置信息、罗经信息、气象信息、测深仪信息、机舱信息、表层海水自动传感器信息以及计程仪信息,上下滑动可查看全部信息,如图3(b)所示。各类传感器都有其记录时间标记,更清晰地展示采集数据的真实性。其中,计程仪信息展示本次航线距离及总航行距离。

图3 雪龙监控界面Fig.3.The interface of Xuelongmonitoring

3.4 历史航迹对比浏览

展开右侧栏,显示出以科考试航、北极科考、南极科考为分类的航次及航行起始日期,可查看各类航次次数及对应的航行时间,进行同类航次横向对比及不同类航次的纵向对比。选择某一次科考,主页地图中会添加对应历史航线,航线颜色与科考标题颜色一致,方便区分不同航线,如图3(c)所示。同时,用户可以勾选3条(不包含当前航次)不同科考航次的航线,进行不同科考航次间的对比,同时也可以了解“雪龙”号的预计目的地及重要时间节点等情况。

4 结语

本文设计并开发了基于iOS平台的雪龙监控系统,实现了准实时展示“雪龙”号最新航情、科考数据等多项功能,填补了雪龙在线网络信息平台在移动互联网用户方面的空白。该应用已发布到苹果App Store中,其成功运行,搭建了一个连接“雪龙”号与社会公众及相关人员的新网络信息平台,也为极地科考相关部门等增添了一个了解“雪龙”号最新动态的窗口。该平台也为中国第30次南极科学考察的顺利进行,发挥了积极作用。在“雪龙”号的航行过程中,本系统在中国极地研究中心得到了良好的反响,同时也有待进一步的完善,下一步的研究计划将围绕“雪龙”号船上人员iOS端监控平台进行,同时我们也将进一步提高并测试系统的可扩展性和移植性[14],使其适用于所有科学考察船。

致谢数据由中国极地研究中心和中国南北极数据中心建设的“极地科学数据共享平台(http://www.chinare.org.cn)”提供,在此深表感谢。

1 张丽瑛,张兆德.海洋科学考察船的现状与发展趋势.船海工程,2010,39(4):60-63.

2 艾松涛,鄂栋臣,朱建钢,等.雪龙在线网络信息平台的研发与展望.极地研究,2011,23(1):56-61.

3 Ai ST, Zhang J, ED C.Design&realization of interactivemanagement system for M/V XUELONG//2011 2nd International Conference on Artificial Intelligence, Management Science and Electronic Commerce(AIMSEC).Deng Leng:IEEE,2011:2020-2023.

4 刘胜前,陈立定,任志刚.基于Android移动平台和GPS应用服务研究.信息技术,2012,(1):82-85.

5 Chang IC,Tai H T,Hsieh D L,et al.Design and Implementation of the Travelling Time-and Energy-Efficient Android GPSNavigation App with the VANET-Based A*Route Planning Algorithm//2013 International Symposium on Biometrics and Security Technologies(ISBAST).Chengdu:IEEE,2013:85-92.

6 徐战亚,吴信才.面向移动空间信息服务的可移植嵌入式GIS平台.地球科学:中国地质大学学报,2010,35(3):495-500.

7 李锋,明镜,王昌翰.移动终端离线电子地图应用框架研究.测绘科学,2013,38(6):129-130,136.

8 周鹏,陈红顺,尹菲.Google Maps API技术在移动终端上的GIS应用.测绘通报,2012,(3):95-96,108.

9 胡荣明,陈晓娣,杨成斌.基于Bing Maps的地形图图幅编号的网络可视化查询.测绘通报,2013,(2):73-75.

10 Stragier J,Mechant P.Mobile fitness apps for promoting physical activity on Twitter:the#RunKeeper case//Etmaal van de Communicatiewetenschap, Proceedings.Rotterdam, The Netherlands,2013.

11 Stephen G K.Objective-C 2.0程序设计.北京:机械工业出版社,2009:5-255.

12 段学东,何九周.基于敏捷思想的iOS平台软件的设计与实现.计算机技术与发展,2012,22(9):53-58.

13 王云.IOS平台客户端应用开发规范化的研究.北京:北京邮电大学,2013.

14 王欣.跨平台移动应用研究与实现.北京:北京邮电大学,2013.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!