更全的杂志信息网

基于移动GIS的矢量电子海图可视化研究

更新时间:2016-07-05

1

随着智能移动设备的飞速发展,电子海图系统不再停滞于桌面系统,移动端电子海图系统的应用也越来越多。然而,相比传统桌面电子海图系统,移动设备由于其存储空间小、运算能力有限、屏幕尺寸较小、输入输出形式较少[1,2],对于大量TPK海图栅格瓦片的加载,“瘦小”的移动设备就显得不切实际,对于数据的更新也是一个难题。其次,移动设备可视化范围较小,对于海图符号的精细化显示要求更高,这些相对传统桌面海图系统可以忽略的问题,在移动设备上都是必须解决的难题。

本文将矢量电子海图“移植”到移动端;同时,不同于传统的纯底层电子海图读取-解析-显示-功能开发模式,本文依托ArcGIS for Android SDK作为技术框架,通过继承图层类DynamicLayer,自定义新View图层类,采用MVC模式,不仅实现了矢量电子海图的可视化,采用ArcGIS本身的可视化引擎,可视化速度和效果显著,而且“借用”ArcGIS成熟的功能模块,依托ArcGIS API进行二次开发,系统稳定,大大缩短后期的系统功能模块开发时间,提高系统的可扩展性和应用效果。

2 电子海图

本文采用S-57电子海图数据,即符合IHO标准《数字化海道测量数据传输标准》的国际标准电子海图。国际标准电子海图是按S-57标准的要求组织的描写海域地理信息和航海信息的数字产品,主要以描述海域要素为主,详细表示水深、航行障碍物、助航标志、港口设施、潮流、海流等要素的数字化信息。电子海图数据文件的命名已经严格规范设定,按照IHO要求和规定编制,000是标准电子海图文件格式的后缀,其封装结构是一种高压缩的数据交换格式。中国海事电子海图的数据文件名表现形式为CN******.000,以CN331340.000为例,其中“CN”是中国海事的代码(由IHO统一分配)、数字“3”是航海用途(表示沿海、Coastal),31340表示图幅编号;小改正更新数据文件表现形式是CN******.nnn,其含义与基础数据文件名的意义相同,但后缀根据小改正更新次数进行编号,最大可达到999次,如第十次小改正更新,其文件名是CN******.010[3,4]

随着我国农业生产力的提升,可操作农作物的品种变得越来越多。但受到现在土壤污染等因素影响,导致很多农作物的产量和质量受到牵连,限制生产力的发展速度。玉米苗期会受到很多病虫害的威胁,想要将玉米的生产量能够有效提升,必须针对病虫害采取应对方法,本文就玉米苗期的相关病虫害进行介绍,并针对给出防治技术指导。

电子海图根据空间信息的数据结构主要包括两大类:光栅式电子海图和矢量式电子海图。其各自特点如表1所示。

电子海图分类 1

矢量式电子海图光栅式电子海图海图信息以简洁的坐标点表示,数据量小于光栅图,占内存少[5]。可以避开矢量海图的缺点:在进行矢量化操作时,因为相关精度的问题导致矢量化后的海图信息不够精细,与原来的纸质海图存在差异。利用适当拓扑结构,可描述各地理要素或空间对象之间相对位置和连接关系,是ECDIS智能化的有力保证,特别是全拓扑结构的矢量式电子海图[6]。加工处理费用较低,生产效率高,海图品质高[5]。可以进行空间实体属性信息的在线或离线搜索。对于显示的内容不能进行选择,容易导致海图信息过于密集,显示效果不佳。便于对图形资进行处理,可以分层显示相应的要素信息。不重要的资料选择性显示,比例尺变化时,图元的大小可以选择性改变[7]。不能对某一区域进行单独更新修改,一旦改动整幅海图重新加工。数据更新可有选择地进行。

从上表可以看出,矢量电子海图数据占用空间更小,矢量绘制海图符号显示效果更佳,支持各种空间分析、数据更新。移动平台内存空间有限,考虑到需要海上作业、离线加载海图数据等问题,矢量电子海图的优势可以得到更好的发挥。

建立学校与企业共同参与的管理机构,管理机构负责组织企业工程师、学校教师和学生共同参与产业项目、组织建设基地“产业功能、教学功能”,形成“合作育人、协作交付、共同研发”的运行机制,实现学校教学环境和企业真实工作环境、实训与生产、教师与工程技术人员、学校文化与企业文化的有机融合。将企业先进的管理理念、管理方法与职业文化引入到基地,将企业工程师与学生按一定比例,合理分配到产业岗位,按企业标准对培训对象进行指导、考核评价。建立满足职业能力要求的项目化实践教学体系,真正实现企业进校园、工程师进课堂、产品进实训,做到文化互融、人员互聘、资源共享。

3 矢量电子海图可视化

3.1 相关工具及技术

④内建SVG支援(module svg/);

随着中国出口的快速增加,劳动密集产品冲击着美国的传统产业,使美国部分产业就业人数大幅减少,为了保护本土企业,美国在贸易保护主义上加强了保护措施,一系列不平等条款、法案等不断颁出。由此中美贸易摩擦逐渐扩大化、复杂化。

(1)NDK介绍

众所周知,Android相关应用软件的开发,都是以Java作为主流开发语言,这主要是因为Android SDK使用Java语言编写。但在实际程序开发中,同样支持C/C++,即所谓的原生编程。Android系统架构下的核心库是一个由C/C++编写的库的集合,因此,可以认为,Android平台实际是由C/C++搭建,由C/C++编程也成为现实[8]

为了在系统底层支持“Java与C/C++”的交换开发,催生了NDK(Native Development Kit)。NDK是一个工具集,支持开发者使用本地代码(C/C++)进行程序部分功能的开发。NDK的出现,使得开发者可以重用一些成熟的C/C++本地库来完成程序某些特定功能的开发,从而提高程序性能。

C/C++的嵌入,丰富了Android的开发;同时,C/C++语言本身的特性,也使NDK给Android开发带来了一系列的天然优势:

①明显提高代码的安全性。应用层主流语言Java被反编译难度较低,而以C/C++编写的动态库的反编译过程则要困难得多。

②对本地开源动态库的利用更加方便。NDK的出现,可以大大提高这些开源库的使用,不仅可以有效重用现有代码,还可以有效提高程序开发的效率。

③明显提高代码的执行效率。C/C++语言本省的高性能性,将其进行较高性能的应用逻辑层面的开发时,可以大大优化代码的执行效率。

④提高代码的可移植性。本地C/C++动态库以 .so库的形式独立存在,可以方便地应用于其他的嵌入式平台,明显提高代码的重用性。

(2)JNI技术混编

JNI,即Java Native Interface,Java本地接口;用来实现Java代码和本地C/C++代码的交互。

NDK作为谷歌开发推出的开发和编译工具集,主要用于Android的JNI开发,NDK提供Java和C/C++交互的环境,用来实现Java代码与本地的C/C++的相互调用。比如,当我们需要使用某个函数,基于效率等原因,函数用C/C++语言在NDK环境中一个类文件中实现,然后将该类文件打包成so动态库;利用JNI技术,我们只需在Java层加载上述本地动态库、定义一个JNI式的接口,便可以实现语言之间的交互,如图1所示。

1 JNI应用流程图

不同平台具有各自不同的绘制引擎,同时不同的操作平台对于自身绘制引擎的支持性也相对较好,并且调用起来也更加方便;本文000矢量海图的具体绘制,采用Android自带的绘制引擎Skia进行。Skia Graphics Library(SGL)是一个由C++编写的开放源代码图形库,最初由Skia公司开发,后由Google收购,搭配OpenGL ES,成为Android的专属绘制引擎库[5]。Skia主要有以下几个特点[9]

2 Android框架图

3 使用JNIAndroid框架图

使用JNI时的Android框架:不再经过Framework框架层,通过JNI直接调用本地开发者编写的C/C++代码,本地代码最后通过NDK环境编译成so动态库,该动态库通过JNI提供的一个Stable的ABI(二进制程序接口application binary interface)调用Linux内核,如图3所示。

上述两张图2和3,可以看出JNI是连接Android框架层(Framework-C/C++)和应用框架层(Application Framework-Java)的纽带。

③较强的动画处理能力(module animator/);

海图系统采用AndroidStudio作为开发平台,开发语言使用Java和标准C++,采用ArcGIS for Android作为开发接口,数据库使用Sqlite。

4 矢量海图绘制流程

(3)ArcGIS Runtime SDK for Android介绍

ArcGIS Runtime SDK for Android为Android平台上开发地理信息系统产品提供了最基本的地理信息系统相关功能的开发框架,本文选择ArcGIS Runtime SDK for Android作为系统开发的技术框架,可以充分利用其API在地图应用层面目前已具备的成熟的技术支持。其主要功能包括:数据加载、地图查询、数据展示、外业数据采集、数据编辑、数据同步。

2组治疗后的Scr和BUN水平高于且GFR水平低于治疗前(P<0.05);治疗前后,2组Scr、BUN和GFR水平差异均无统计学意义(P>0.05),见表2。

基于ArcGIS Runtime SDK for Android进行二次开发,能够大大改善之前海图系统零起步自主研发导致的系统不稳定性,而且对于后期的系统可拓展性可以提供很好的支持。

3.2 矢量海图绘制

ArcGIS for AndroidSDK提供各种类型的图层类,各图层类继承关系如图5所示。其中,DynamicLayer提供自定义矢量绘制接口,对于000矢量电子海图的绘制,通过继承DynamicLayer自定义图层来实现,做到对ArcGIS for Android框架的无缝对接。

5 图层类继承关系图

为了实现矢量电子海图解析的跨平台性,提高整个海图系统在平台间的可移植性,提高代码的使用率,000矢量海图的解析部分采用标准C++来完成,NDK环境和JNI技术的引入,使得Android开发环境对于标准C++具有比较良好的兼容性,不仅支持调用C++封装的底层库,而且支持Java和C++混编,最终将解析的部分打包成so动态库供上层绘制模块调用。解析模块整体上分为两个部分,对000海图文件和符号库进行分离解析。

建立完善的房屋施工安全管理体系,使施工安全管理与施工质量管理相协调,并形成房屋建筑市场安全施工管理的完整系统。要明确工程控制人员的具体安全责任,对工程任务进行分解,使工程的安全目标控制成为体系,并以此为依据来完善工作制度。各个建筑企业应该为员工定期举办安全管理讲座,通过各种实践性的学习强化完其安全管理意识,在安全管理讲座举办完毕之后,建筑企业应该组织施工人员进行安全管理知识讨论,通过实践交流与合作探究,不断的强化员工的安全管理意识。凡是施工现场必须配有安全监理及专职的安全员来负责施工现场的指导工作,保障能够及时发现建设过程中的质量问题及安全隐患。

通过Android中的应用程序框架,可以简单、直接地看出JNI给程序调用带来的变化。正常情况下的Android框架:最上层是Android的应用程序代码,为Java语言,中间层是Framework框架层,为C/C++代码,通过Framework层进行系统的调用,调用系统的底层库函数和Linux内核,如图2所示。

坚持“以人为本、重点突破、因势利导、统筹城乡、全面发展”的能源建设思路,提高清洁能源和可再生能源比重及利用效率。截至2017年底,全市风电装机规模达到274万kW,发电量57.28亿kWh,全市光伏装机规模达到1万kW。创新试点弃风清洁供暖工程,提高风电消纳能力,减轻电网外送压力,已建成并供暖面积103万m2,可节约标准煤1.88万t,对冬季供暖能源供应结构调整,具有积极的示范作用。

①高度优化的软件rasteriser(module sgl/);

(3)假设只有下文定义的在每项任务所在的单位网格内,任务数量qi、会员数量Qi、会员平均完成能力cpi和距离Ri四个因子影响任务的定价;

⑤内建若干image codec,如PNG,JPEG,GIF,BMP(modules images/);

本文研究选择ArcGIS Runtime SDK for Android作为系统开发框架,虽然ArcGIS的API技术已相对成熟,但ArcGIS SDK并不能解析和绘制S-57电子海图矢量格式的000文件。通过对NDK的研究和JNI技术的了解,本文选择用标准C++解析000文件读进内存,利用JNI技术,然后用Java进行绘制的模式进行矢量海图的绘制显示,简单的基本流程如下图4所示。这么做的好处就是文件的解析部分是可以跨平台运行的,以后如果要在其他平台上布设移动海图系统就可以直接使用这里的解析模块而不用重新解析从头开始。绘制的部分由于要考虑到不同操作平台的绘制环境,故没有必要做成跨平台的通用模块,这样还可以利用不同平台对自有绘制引擎的加速功能,从而使绘制更加高效。

000海图文件的解析用C++来实现,而Android主流应用的开发使用Java语言,因此涉及C++与Android端Java代码的对话问题,需要实现两者之间的无障碍交流;为了解决这一问题,本文选择采用NDK工具和JNI技术,也是目前Android开发解决此类相关问题的主流途径。

②选择性透过OpenGL ES,加速特定操作,如shader与textures(module gl/);

⑥具有一定的文字处理功能,但对于不太常见的文字的处理相对不足;

Android对Skia的调用是一个比较经典JNI式的调用过程,这与下面矢量绘制的调用过程有异曲同工之处;JNI放在框架的JNI目录下面的Graphic目录;Skia以第三方组件的身份,放在external目录下面。Android对Skia的调用流程如图6所示。

6 Android调用Skia流程图

海图适量绘制的过程总体思想就是解析、绘制、显示三过程上下层环境的分离、开发语言Java/C++的交互;最后形成独立的视图控件。实现解析过程的可移植性、跨平台性;利用JNI实现上下层环境Java/C++语言的交互、海图的绘制;通过自定义开发ArcGIS for Android View图层类,实现海图显示图层的模块化、独立性。整个调用绘制过程如图7所示。

7 海图矢量绘制图

海图矢量绘制具体步骤如下:

(1)首先是海图000文件和符号库文件的解析。该过程发生在C++底层,这是一个可移植的过程,桌面版、IOS平台均可适用;

(2)将解析结果内存块转化为bitmap。解析结果内存对象ENCProject到海图bitmap图像的过程发生在Android NDK环境下的C++底层,利用Android的Skia图形库方法DrawMap方法将内存块ENCProject绘制出bitmap;

“嚼舌根”虽是一种劣习,但它却反映了当今社会老人受到忽视产生的畸形心理。其实,老人更需要存在感。子女应时时处处善待老人,家中大小事情请他们一起商量、做决定,经常带他们四处走走、给他们买礼物……让老人常“露面”、常“做主”,老人便会有“存在感”。 而老年人在享受生活时,也需要找寻一些具有正能量的兴趣爱好,多参加集体的公益活动,树立正确的人生观和价值观。

(3)利用JNI将C++底层bitmap上传到Android应用层java类。该过程符合Android对Skia JNI式的调用过程,将结果返回到上层Java层。

(4)自定义新的View图层类TeleSeaMapServiceLayer。通过覆写继承自DynamicLayer的TeleSeaMapServiceLayer的getImage方法,接收底层传出的bitmap。

(5)采用ArcGISAPI类MapView加载地图场景方法addLayer,实现S-57海图图层的显示。

4 可视化效果展示

(1)开发环境

2013年年底,分管市长专门召集试点工作领导小组各成员单位,布置2013年度实施最严格水资源管理制度年度考核工作。2014年年初,市政府办、市发改委、市水利局、市绩效办联合组成了最严格水资源管理制度考核小组,对各责任单位进行了考核。2014年5月,试点工作领导小组办公室将考核结果上报了市政府,经市政府领导批示同意后,将考核结果通报各责任单位,并抄报市委组织部。

测试环境

国网电力调控自动化机房中的布线工作是较为复杂的工作,并且有很多的线路都是在地下或者是建筑物顶端位置,所以,布线的工作难度也是相对较大的。在实际施工过程中,还会有很多的突发事情,比如线路长度的差异,机房中线路布置出来的美观性等诸多方面的问题,都会影响到布线的实际施工。目前,我国有很多供电企业在机房布线方面都是存在很大问题的。因此,在实际国网电力自动化机房布线工作当中,必须要在前期的设计阶段,设计出科学合理具有实用性的布线线路,还需要保证线路的使用效率,以及后期的线路维护、管理等问题,只有这样才能在一定程度上提高国网电力自动化机房的安全性和效率性,从而去实现机房所带来的经济价值。

主要测试设备包括Galaxy Note Ⅱ和Galaxy Tab Pro T320。各项参数指标如表2所示。

测试参数 2

机型CPU内存/GB分辨率操作系统GalaxyNoteⅡ四核1.6MHzRAM:2ROM:161280×720Android4.3GalaxyTabProT320四核2.3MHzRAM:2ROM:162560×1600Android4.4

(2)效果展示

S-52标准对海图的显示做了基准规范,将航道图显示分类为以下三种:

①基础显示:指不能从显示中删除的,由那些在任何情况下都需要的信息所组成的SENC信息层。基础显示作为标准显示的一部分,并不能满足安全航行的需要。

她从小皮包里拿出一支笔和一张纸,一转身按在蘑菇亭的柱子上写了几个字,然后伸手递给了我。“你先到这里等,”她微笑着说,“或许他们已经到了。”

②标准显示:指当航道图默认情况下在电子海图显示与信息系统上显示时所展示出的系统电子航海图(SENC)信息。在实际航海应用时,相关工作人员可根据需要选择性显示系统航道图的信息,同时可以进行相关修改。

③所有其他信息:指不包含在标准显示中的航道图信息、它仅在需要时才显示[10]

实验结果表明,矢量电子海图的显示达到预定目标,尤其是对精细化海图符号的显示非常成功,如图8所示。

8 矢量海图显示效果图

相比传统tpk瓦片栅格海图,矢量电子海图所占存储空间更小,大大提高了移动端海图显示的应用范围。矢量电子海图的显示质量更好,海图缩放不失真;同时,从图8可以看出,矢量电子海图实现了对海图符号显示精度和显示质量的双重保障,解决了瓦片栅格海图符号标识模糊、位置不明确的问题;并且,本文实现可以随意切换实时渲染显示不同专题的海图符号,相比栅格海图“一个专题符号海图就需要重新打包一份对应的GB级别的栅格瓦片”,这完全是跨越式的进步。

5

海洋地理空间的发展是这个时代的主旋律。电子海图作为海上作业的必备工具,智能移动设备的发展推动,对矢量电子海图的需求越来越大。本文提出通过继承ArcGIS DynamicLayer,自定义海图图层TeleSeaMapServiceLayer,实现了ArcGIS for Android下的矢量电子海图的可视化,可视化效果显著。同时,基于ArcGIS for Android的二次开发,有助于后期可视化系统的维护和可拓展性。对于系统的优化和相关功能的开发,有待于后期进一步开发。

研究表明每生产100 kg黍子籽粒大约从土壤中吸氮8.0-2.1 kg、磷0.8-1.0 kg、钾1.21-1.8 kg。基肥:播种前结合深耕施入,以有机肥为主,有机肥营养全面,肥效长,促进土壤熟化,提高土壤肥力,基肥施用时间以秋施或早春施较好,一般有机肥1500-2000 kg,并注意施N、P,复合肥15-20 kg。种肥:供黍子前期生长用,以氮肥为主,尿素1 kg,硫酸铵2.5 kg,磷酸铵1.5-2.5 kg每亩。

参考文献

[1] 齐胜利. 基于Android的移动电子海图平台研究[D]. 大连:大连海事大学,2012.

[2] 李超,潘明阳,李邵喜等. 基于Android的电子海图显示系统研究与实现[J]. 大连海事大学学报,2013,39(4):55~58.

[3] 陈辉. Web方式下电子海图的显示技术研究与应用[D]. 武汉:武汉理工大学,2011.

[4] 董才华,秦臻. 电子海图数据读取与显示技术[J]. 中国航海,2012,35(4):22~25.

[5] 徐铁.电子海图数据库及其索引技术研究[D]. 上海海运学院,2003.

[6] 徐永峰.基于分层动态网格的电子海图显示技术研究[D]. 上海:上海海事大学,2006.

[7] 董晓光,李树军,李改肖等. 移动平台下电子海图矢量数据访问优化方法[J]. 海洋测绘,2015,35(4):57~59.

[8] 王有禄,李代平. Android系统下基于NDK方式的图形开发[J]. 计算机系统应用,2013(12):56~59.

[9] 邵哲平,孙腾达,潘家财等. 基于ECDIS和AIS的船舶综合信息服务系统的开发[J]. 中国航海,2007,2:7.

在2018年4月底的年会现场,原国税局副局长许善达提出增值税改革以来,部分企业的改革获得感并不强,其中留抵税款就是一大阻力。留抵税款从根源上影响了企业的减税红利,但是如果留抵税款在政策上改为退税款,预估每年的减税规模能达5000亿元左右。可见,加速建立稳定的退税机制已经成为企业的一大期望。

赵军,宫丽玮,周圣川,胡振彪
《城市勘测》 2018年第2期
《城市勘测》2018年第2期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号