基于Android平台的高速公路网规划查询系统设计与开发

 2022-01-23 09:01

论文总字数:31336字

摘 要

高速公路在交通网络中占据着重要地位,在国民经济发展和人们的日常生活中一直发挥着巨大的作用。截止2013年底,我国高速公路总里程数已经达到10.44万公里,其中,江苏省的高速公里总里程已超过4300公里。本文的研究目的是在移动通信技术快速发展成熟和智能终端大范围普及的背景下,设计和开发一个在搭载Android智能系统的手机平台上运行的,针对江苏省内的高速公路网的规划查询系统APP。开发使用Java编程语言以及集成了Java Development Kit(JDK)软件开发工具的Eclipse Java EE平台,同时加载了ESRI提供的ArcGIS API for Android应用开发插件包。应用开发前,需要在ArcMap中将现有江苏省高速公路网栅格数据和省市界矢量数据进行地图配准以及矢量化,得到SHP文件,制作成切片地图图层并上传ArcGIS online服务器发布地图服务(MapServer)。之后进行应用开发,使之能够通过网络在线传输的方式读取ArcGIS online服务器上的地图服务数据,在软件的界面中中进行绘制和显示,然后编程实现一些功能操作,通过Eclipse集成的Android模拟器进行调试,最后得到可以稳定运行的应用软件。本文主要阐述了课题选择的背景和意义,系统设计开发所涉及的相关技术原理,ArcGIS Android开发所需要的开发环境搭建方法,解释Android系统的结构框架和实现的功能操作,解释功能实现所使用的算法代码等。

关键词: Android系统;Java语言;ArcGIS API for Android;ArcGIS online地图服务

Design and development of the highway network planning inquiry system based on Android platform

Abstract

As a road system which Occupies an important position in transportation network, expressway plays a huge role in the national economic development and daily life. By the end of 2013, the total mileage of the expressway in China has been reached 104400 kilometers. The expressway mileage of Jiangsu Province has been reached 4300 kilometers. The purpose of this study is to design and develop a expressway network planning and query system application of the Jiangsu province on the mobile phone based on Android smart system,which is under the technology background of rapid development of mobile communication technology and the wide range of intelligent terminal. The development uses the Java program language, the Eclipse Java EE development platform integrated with Java Development Kit, and the ArcGIS API for Android application development plug-in package provided by ESRI. Before the start of development, what need to do is to register and vector the existing raster data of Jiangsu province expressway network and get the SHP data. And make a tiled map layer in PNG format and upload to the ArcGIS online server to publish map service. Then start the develop the application which can read the Mapserver data on the ArcGIS online server through the network and draw and display the map in the Graphics layer of the software, and carry out some map function operation with programing. Debug the software through Android emulator in the Eclipse, and get the Android application. This paper mainly expounds the background and significance of this subject, related technology principle of the development of this system, construction method of ArcGIS API for Android development environment. It also shows system structure frame and the achieved function, and explain the algorithm code used in the implementation of the function.

Keywords: Android smart system; Java; ArcGIS API for Android; ArcGIS online map se

基于Android平台的高速公路网规划查询系统设计与发

第一章 绪论

1.1 选题背景及意义

进入21世纪以来,现代通讯技术尤其是移动通信技术不断地发展成熟,移动通信技术已经进入4G(第四代移动通信系统)时代。以Android为代表的移动智能操作系统相继诞生并且发展迅速,功能日益完善,用途日益广泛。智能手机、便携式平板电脑等移动智能终端也逐渐普及,越来越多地进入到人们的生活之中,在生活工作娱乐等各方面发挥着越来越重要的作用。比起较为笨重而且对使用环境要求较高的个人计算机而言,移动终端更加轻巧,使用更加方便,只要联通到互联网,人们就可以通过这些移动终端随时随地地获取需要的各种信息,这已经成为当下人们获取信息的重要途径。用户可以使用移动设备上安装搭载的各种软件和应用进行各种操作和获取需要的服务。在旅游、通信、社交、购物等一些产业,移动终端也已经成为必不可少的重要组成部分。

Google公司于2007年11月推出了一款以开放源代码为特点的开放式移动智能系统——Android智能平台系统,目前已经成为全球使用率和市场占有率最高的移动智能系统。

在信息爆炸的当今社会,人们对信息的需求并不简单局限于文字或者图片的范畴,对地理空间信息的需求量也日益增加。移动终端上软件应用与地理信息和网络信息技术结合的工作方式,已经成为时下GIS相关领域的一个重要发展方向。

ESRI公司在2009推出了新一代面向移动技术和移动终端的GIS软件模块和开发包——ArcGIS Mobile的正式版本,将ArcGIS的应用范围从室内计算机扩展到了室外移动的设备之上,ArcGIS Mobile可与ArcGIS的其他功能同步联通,使移动设备也能随时随地获取GIS信息或者使用GIS服务和功能。

2011年的ESRI开发者大会上,ESRI首次向广大的GIS开发者发布了针对Android等移动智能系统的软件开发插件包,即ArcGIS API for Android。利用Java编程语言配合ArcGIS Android开发包进行移动应用开发显示出了非常优秀的市场潜力,ArcGIS API for Android为Android系统上GIS软件应用的开发提供了一定的技术支持,使ArcGIS开发和Android移动智能系统的有机结合成为可能。

目前在移动端,已经有非常多的包含地理信息服务的软件APP成功运营,最常用的包括各类电子地图以及定位导航软件,为人们的出行和生活提供了很大的方便。

利用ArcGIS API for Android 开发的应用,可以极大地丰富用户能够从移动终端上获取的地理信息,满足用户对信息数量和种类上的高需求,使应用软件可以便捷可靠地在移动端进行地图信息的可视化显示和并提供相关操作。

1.2 国内外研究现状

1.2.1 Android系统的诞生发展

Android意为“机器人”,是一种基于Linux的开放式操作系统,主要应用于智能手机、便携式平板电脑等移动设备,近两年来,其应用范围也随着版本更新而不断扩展。Android系统由美国Google公司和开放手机联盟合作开发,Android系统还没有确定的官方中文名称,但是在中国大陆地区多被称为安卓系统。Android系统一开始是由Andy Rubin创建的Android公司开发研制,2005年8月,Google公司注资收购了这家公司后,之后Google与多达84家硬件制造商和电信运营商组成了一个开放手机联盟一同继续研发和完善Android系统。2007年11月,Google公司正式发布了Android系统,并以Apache开源许可证的授权方式,公开了Android的源代码。2008年9月22日,美国运营商T-Mobile USA在纽约正式发布了第一款Google手机——T-Mobile G1.该款手机由中国台湾宏达电子(HTC)代工制造,是世界上第一步使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率为7.2Mbit/s,并支持Wi-Fi无线局域网络。从此Android系统开始了迅猛的发展历程,其应用范围也逐渐扩展到平板电脑、智能电视、相机、游戏机等许多其他种类的设备上。

2011年,第一季度,Android系统成为了全球市场份额最高的移动智能操作系统。截止2013年,Android手机在全球手机市场上的份额占有量已经接近80%,全球使用Android系统的设备已经超过了10亿台。

作为一款智能操作系统,非常重要的就是其应用市场,因为Android系统开放源代码的特点,其应用发展非常迅速。到2010年10月份,应用市场上已经有超过10万个经过官方数字认证的Android应用。这个数字在2012年1月增加到了40万,2013年底,Android应用市场上有官方数字认证的Android应用已经超过100万个,其中大部分应用为免费应用。而因为Android开源的特点,还有很多未得到官方认证的应用在网络上流通传播,Android应用市场上一年的应用下载量可达到560亿次。Android庞大的使用量和丰富的应用市场,为Google公司带来了非常可观的收入,Android系统也已经成为了Google公司收入的最大来源。据统计,Android发展最为迅速的时候,全球每天都有超过50万台Android设备被激活售出。

与Google公司合作开发Android系统的开放手机联盟其中包括了中国移动在内的多家移动通信领域的企业。Google与开发商、设备制造商、运营商和 其他第三方结成了深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内行程一个开放式的生态系统。

随着中国通讯技术和电子技术的发展,中国已经成为Android系统使用最广泛的地区之一,而且发展速度极为迅速。在2009年9月,中国地区使用Android系统智能手机的用户比例还只有2%不到,到2009年底,这个比例就已经上升到了4%。而截止2012年底,Android智能操作系统已经占有了超过50%的中国手机市场,已经成为中国市场占有率第一的手机操作系统。

在中国,中国移动通信以Android平台为基础定制了一款更加是个中国手机用户群体使用的智能手机操作系统OMS(Open Mobile System,开放式手机操作系统)。OMS采用Linux内核,通过3G芯片桥接,使Android平台能够兼容中国移动的TD网络。而随着4G牌照的发放,Android平台在中国也会更加的完善,本土化进程也更加深入。

与此同时,在Android智能手机市场的份额不断攀升的今下,Android在工业手持终端的市场上也开始展现其强大的潜力。以与交通和GIS关系紧密的物联网产业为例,第一款国产的使用Android系统的工业手持终端与2012年6月发布并量产上市,受到广泛好评,而在国外,使用手持终端进行工业操作已经成为一个非常普遍的工作方式。

现在,Android系统已经渗透到中国民众生活的各个领域,最近两年,Android智能电视、游戏盒、智能手表等产品相继出现并且呈现出极为火热的销售态势。随着4G技术在中国的发展和普及,以Android系统开发为主的移动端开发人才的需求量也急剧增加,Android开发工程师已经成为信息行业内炙手可热的岗位之一,学习Android应用程序编写的人也越来越多。

目前国内的Android开发还是主要以应用开发为主,主要分成3类:为企业开发应用、开发通用应用以及游戏开发(放到Android 应用市场或者其他的应用市场上销售)。第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。第二类开发者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要是2种:为国外公司进行外包开发,或者通过Google的移动广告(AdMob)通过广告点击分成。而理论上的通过付费下载的形式来盈利的,现在国内鲜见成功者。

1.2.2 ArcGIS API for Android的诞生和发展

ArcGIS API for Android是ArcGIS软件系统的Android版本所提供的一个API即应用程序编程接口。API的测试版本于2011年2月发布,ArcGIS API 使用户可以使用Java语言构建多种应用程序,这些程序可以运用ArcGIS所提供的接口实现制图、地理编码、地理处理和自定义实现一些复杂的业务处理功能,并将他们部署到Android设备上。

2011年的ESRI开发者大会上,ESRI第一次向广大GIS开发者发布了ArcGIS API for Android的开发文档,开发文档较为简单,只有十几页,但是将ArcGIS和发展火热用途广泛的Android移动设备结合起来,体现了ESRI公司的眼光和想象力,借助移动智能设备的快速发展和普及,ArcGIS API for Android的开发模式也具有了非常强大的发展潜力。

当然,一个诞生刚刚4年的API,其发展还处于初期阶段,其特点是支持功能较少,一些ArcGIS强大的地图处理、分析、查询功能在移动设备商很难完美地运行,Java语言对这些功能的支持也需要继续增强和改进。

现在,国外已经有一些相关工作者开始致力于这方面的开发和研究工作,2012年,已经有一批使用ArcGIS API for Android开发的应用程序获得Google的数字认证并在应用市场上架。而在国内,进行这方面研究和开发的人还很少,但是这个方向的潜力是毋庸置疑的。

第二章 相关技术原理研究

2.1 Java语言

2.1.1 Java语言简介

Java语言是由James Gosling在Sun Microsystems公司领导的一个研究小组开发的。Java最初被称为Oak(橡树),是1991年为了消费类电子产品的嵌入式芯片而设计出来的。1995年正式更名为Java,并重新设计来用于开发Internet应用程序。

Java作为一种可以开发跨平台应用程序的面向对象的程序设计语言,它的快速发展以及被广泛接受都应该归功于它的设计特性,特别是它对用户的承诺:一旦用Java编写了一个程序,在任何地方都可以运行。就像Sun Microsystems所宣称的那样,Java是简单的(simple)、面向对象的(object oriented)、分布式的(distributed)、解释型的(interpreted)、健壮的(robust)、安全的(secure)、结构中立的(architecture neutral)、可移植的(portable)、高性能的(high performance)、多线程的(multithreaded)和动态的(dynamic)。

Java是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。现在,它不仅用于Web程序设计,而且用于在服务器上、台式机和移动设备上开发跨平台的独立应用程序,同时,Java拥有全球最大的开发者专业社群。

Java除了可以开发常规的台式机和服务器上的应用程序外,其最具代表性的用途就是用来开发小型手持设备或者说移动设备上的应用程序。

Java由以下四个部分组成:

  • Java编程语言,用于编写程序的语法
  • Java文件格式,各种文件夹、文件的后缀
  • Java虚拟机(JVM),在工作空间中用来处理.class后缀文件的解释器
  • Java应用程序接口,即API,包括本文中所用到的ArcGIS API for Android

Java编程语言的风格十分接近C语言、C 语言。Java是一个纯粹的面向对象的程序设计语言,它继承了C 语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的性能。

2.1.2 Java语言规范和平台构架

任何一种计算机语言都有它严格的使用规范,如果编写应用程序时没有遵循这些规则,这些程序就不能够被计算机编译理解。Java的标准是基于Java语言规范和Java API来定义的。

Java语言规范(Java language specification)是在技术层面上对语言定义,它包括Java程序设计语言的语法和语义,Java详细的语言规范可以参照Sun Microsystems公司官方网站上的文档,这里不多叙述了。

Java是一个全面且功能强大的语言,可用于多种用途。Java平台有三种构架:Java标准版(Java Standard Edition, Java SE)、Java企业版(Java Enterprise Edition, Java EE)、Java微型版(Java Micro Edition,Java ME)

Java SE允许开发和部署在服务器、桌面、实际环境和嵌入式的环境中运行使用的Java应用程序。Java可以用来开发客户端独立的应用程序或applet。并且包含了可以支持Java Web服务开发的类,能够为Java Platform和Java EE提供开发基础支持。

Java EE,是Java平台的企业版本,可以帮助用户开发和部署健壮的、可移植的、安全的而且可伸缩的服务器端上的Java应用程序。Java EE是在Java SE标准版的基础上构建的。它提供组件模型、Web服务、通信和管理API,目前企业级的service-oriented architecture(SOA,面向服务体系结构)和Web上运行的应用程序主都主要是用Java EE来完成实现。本文中,设计的高速公路网规划查询系统的开发就是只用Java EE的开发平台来实现。

Java ME,也被称为K-Java。Java平台的微型版本可以为手机、PDA、掌上电脑、电视机顶盒、智能电视TV、相机和打印机等移动设备和嵌入式设备上的应用程序构建一个良好稳定的运行环境。Java ME的特点是,使用Java ME编写的程序,只需要编译一次,就可以在许多设备上稳定运行。但是Java ME较难上手,其许多核心功能在Java EE中也都能够实现。

2.1.3 Java API、JDK和IDE

应用程序接口(Application Program Interface,API)包括为开发Java程序而预定义的类和接口。Java的语言规范是稳定可靠的,但是其应用程序接口是在不停扩展的,本文使用的就是ArcGIS提供的API。

API其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。

Java平台在发展过程中也有很多版本, Sun Microsystems公司发布的每一个Java平台的版本都带有一个Java开发工具包,即JDK。本课题的开发中使用的是对应Java EE 7的JDK1.7,也被称为JDK 7.

JDK是一套独立程序构成的集合,每个程序都是从命令行调用的,用于开发和测试Java程序。除了JDK,开可以使用某种Java开发工具,比如本课题使用的Eclipse——它们是而为了快速开发Java程序而提供好的一个集成开发环境(IDE)的软件。编写代码、编译、链接、调试和在线帮助都集成在一个图形用户界面中,这样,只需要在一个窗口中输入源代码或者在工程框架里面打开已有的文件,然后通过点击按钮和菜单选项或者实用功能按键就可以进行编译、调试和运行源程序。

JDK包含有以下的一些基本组件:

javac – Java程序编译器,将源程序转化成可以识别的字节码

javadoc – 文档生成器,从源代码的注释里面提取出文档

jar – 应用程序打包工具,将相关类别的类文件打包整合成为一个JAR文件

jdb – Java debugger, Java程序查错工具,可以逐行运行程序,设置断点等调试功能

java – 解释器,编译后的Java程序(.class后缀),执行Java程序里的代码

appletviewer – 一种.exe后缀的小程序浏览器,执行工作空间中HTML文件中编写的Java小程序的程序浏览器,可在不连接万维网的情况下运行applet

Javah –产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

Javap – Java反汇编器,显示编译类文件中的可以被访问的功能和数据,同时字节代码的含义也需要Java反汇编器来实现

Jconsole – Java 系统调试和监控所必须使用的一种工具

2.1.4 Eclipse集成开发环境

Eclipse是由IBM公司开发的IDE开发环境,是一个开放源代码的、基于Java的可拓展开发平台,可以通过各种插件和组件搭建开发环境。它包含了一个标准完善的Java开发插件集,其中就有JDK。

剩余内容已隐藏,请支付后下载全文,论文总字数:31336字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;