版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能GPS功能的实现摘要所谓的GPS是指利用GPS定位卫星,在全球范围内实时进行定位、导航的系统,其全称为全球卫星定位系统。在空间技术和通信技术的推动下,GPS自诞生40余年以来,得到了迅猛的开展。同时随着智能移动终端的不断开展,GPS技术从过去的单一设备逐步渗入到智能设备的开发上。智能GPS功能的实现作为GPS技术与智能技术的结合,从导航具有便携性好、价格较低、永远在线等方面来说,所以说在全球最流行的安卓智能上研制GPS导航系统是非常有意义的。论文首先概要介绍了GPS技术的开展现状和前景,研究了基于基于Android平台的移动终端GPS系统开发的可信性及需求分析;然后详细阐述了Android系统的由来与安装;接着在分析用户需求的根底上,对系统的功能模块进行了划分;最后进行了具体的程序编写以及测试工作,测试结果说明,该系统已能完成GPS手持终端的根本功能,在目前安卓智能普及的情况下,野外无需再专门购置设备,使用本钱大大降低,且携带方便,可随时进行野外作业。因此,本系统有着广阔的应用前景。关键词:GPSAndroid全球定位系统卫星定位安卓智能目录TOC\o"1-4"\h\z\u第一章绪论………………………11.1引言…………11.2研究内容……………………11.3论文结构安排………………2第二章Android系统下的软件开发…………32.1Android系统简介…………32.1.1Android的由来……………………32.1.2Android的系统架构………………32.1.3Android的应用程序开发…………42.2Android开发环境的构建…………………42.2.2JAVAJDK的安装…………………42.2.3Eclipse的安装……………………62.2.4ADT的安装…………62.2.5AndroidSDK的安装………………6第三章系统分析与设计………83.1研究目标…………………83.2需求分析…………………83.3系统功能设计……………8第四章系统实现………………94.1Elipse文件的结构及功能………………94.2界面设计…………………104.3程序模块以及功能设计…………………104.3.1程序模块介绍……………………104.3.2程序模块的功能…………………104.4主要功能的实现…………11获得GoogleMapAPIKey………124.4.2布局及按钮的设置………………144.4.3配置窗体部件字符串文件………15关于应用配置及声明的设置……154.4.5主程序框架介绍…………………16地图放大缩小的相关操作…………………17对卫星视图的相关设定……18对坐标显示区域的设置……18第五章系统测试………………19结论………………23致谢………………24参考文献…………25第一章绪论1.1引言GPS是英文GlobalPositioningSystem〔全球定位系统〕的简称,最早它是20世纪70年代由美国陆海空三军联合研制的空间卫星导航定位系统。其主要目的是为陆、海、空三大领域提供实时、全天候和全球性的导航效劳,并用于情报收集、核爆监测和应急通讯等一些军事目的,经过40余年的研究实验,GPS技术的运用已去向平民化,且日益成熟。由于GPS系统所具有的全天候,高精度,和自动测量的特点,作为先进的测量手段和新的生产力,已经融入到了国民经济建设,国防建设和社会开展的各个应用领域。其运用提高了生产力,作业效率,科学水平以及人们生活质量,因此可以说GPS技术在经济全球化的今天起着举足轻重的作用,而且可以预见的是全球定位技术对于人们的生活也将越来越凸显它的重要性,人们的生活也将越来越离不开它的存在。目前,全球共有四种全球定位系统,包括美国的GPS,俄罗斯的格洛纳斯,欧洲的伽利略和中国的北斗,相比拟而言,美国的GPS全球定位系统组建的最早,技术也最为成熟,但由我国自主研发的北斗定位系统也毫不逊色。北斗卫星导航系统是中国自行研制开发的区域性有源三维卫星定位,可在全球范围内全天候、全天时为各类用户提供高精度、高可靠的定位、导航、授时效劳[1]。可以说,上至航空航天,下至工业、渔业、农业生产和日常生活,全球卫星导航定位技术无所不在。正如人们所说的:“全球卫星导航系统的应用,仅受人类想象力的制约。”1.2研究内容为了实现智能GPS功能,我事先做了大量的准备。包括前期对智能实现GPS功能这个课题的研究意义及需求进行了分析,也制定出了相应的研究目标及所实现的GPS的性能指标。然后,我查找了大量书籍,深入了解了安卓操作系统,明白了Android操作系统的由来系统构架以及开发Android应用程序所必须具备的计算机运行环境。我根据书上的性息,在自己的计算机上搭建了Android开发环境平台。在论文的中期,我研究了安卓的定位方式,其相对来说还是比拟简单的,目前我们可以使用位置管理器和位置提供者进行getLocation的调用。这个方法返回本机的当前位置的一个快照,这个快照将以Location对象形式提供。在手持设备中,我们可以获得当前位置的经度和纬度。这样就完成了自己位置确实定,如果需要查看自己所在的位置的话还需要调用一个地图的API比方GoogleMap[2]。调用之后就可以在地图显示自己的位置了。在本次的工程中主要用到的就是当前的经度和纬度,并通过GoogleMap调用当前的地理位置信息,还可以通过视图切换按钮,从的视图框中观察到当前位置的卫星视图。有以上研究结果,我编写出了程序的初步代码。论文后期,已经完成了基于安卓GPS定位工程的代码编写工作,并对此工程进行运行测试,在安卓2.2智能平台,运行此工程,所得到的结果还是比拟让人满意的。1.3论文结构安排论文将按照下面的描述进行内容的安排。第一章引言,简要介绍了GPS技术的开展,指出了课题研究的背景、意义和主要内容。第二章Android系统下的软件开发,对安卓系统的由来及系统构架做了分析和探讨,然后详细介绍了安卓的开发环境且在自己的计算机上完成了运行环境的搭建。第三章系统分析与设计,明确了系统研究的目标,描述了系统的功能结构,对系统需求进行了分析。第四章系统实现,对程序进行了操作界面的设计,以及具体的编写和模块搭建工作。第五章系统测试,描述了对安卓智能实体机运行软件的测试。说明了程序运行及安装的方法,进行了现实中的GPS定位。结论与致谢,总结了本课题的研究工作,提出了今后进一步工作的方向,并向我帮助和关心我的老师、同学和朋友们表示了衷心的感谢。第二章Android系统下的软件开发2.1Android系统简介2.1.1Android的由来Android是一种以Linux为根底的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由AndyRubin开发,最初主要支持[3]。2005年由Google收购注资,并组建开放联盟开发改进,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的AndroidOS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年2月数据,Android占据全球智能操作系统市场52.5%的份额,中国市场占有率为68.4%。2.1.2Android的系统架构Android的系统架构和其它操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层[4]。Android是以Linux为核心的操作平台,作为一款开放式的操作系统,随着Android的快速开展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢送,成为真正意义上的开放式操作系统。在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程,还有其他诸如:Qt〔qtforandroid〕、Mono〔monoforandroid〕等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的AndroidSimple语言,类似Basic语言。而在网页编程语言方面,JavaScript,,HTML5,dojo、mobl、PhoneGap等等都已经支持Android平台。而在Android系统底层方面,Android使用C/C++作为开发语言[5]。2.1.3Android的应用程序开发早期的Android应用程序开发,通常通过AndroidSDK〔Android软件开发包〕下使用Java作为编程语言来开发应用程序,但通过不同的软件开发包,那么使用的编程语言也不同。例如开发者可以通过AndroidNDK〔AndroidNative开发包〕使用C语言或者C++语言来作为编程语言开发应用程序。同时谷歌还推出了适合初学者编程使用的Simple语言,该语言类似微软公司的VisualBasic语言[6]。此外,谷歌公司还推出了GoogleAppInventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。2.2Android开发环境的构建2.2.1Android系统开发环境根本组成Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的JavaSDK(其中包括JRE:JavaRuntimeEnvironment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发[7]。(1)JavaJDK(2)Eclipse(3)ADT(4)AndroidSDK2.2.2JAVAJDK的安装首先登陆JAVAJDK官网,,我由于是32位系统所以下载的时候选择32位的,我下载的是jdk-7u3-windows-x32然后安装JavaJDK。安装完成后,还需要设置环境变量,翻开我的电脑->属性->高级系统设置->环境变量->系统变量中添加以下环境变量,如图2.1所示。图2.1添加系统环境变量〔1〕JAVA_HOME指明JDK安装路径,就是刚刚安装时的路径C:\ProgramFiles\Java\jdk1.6.0_21,此路径下包括lib,bin,jre等文件夹〔2〕PATHPath使得系统可以在任何路径下识别java命令,设为:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin〔3〕CLASSPATHCLASSPATH为java加载类(classorlib)路径,只有类在classpath中,java命令才能识别,设为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(要加.表示当前路径,%JAVA_HOME%就是引用前面指定的JAVA_HOME。)上述环境变量设置好了后,从开始菜单栏中运行cmd,在命令窗口里面运行“java–version”命令,如果可以从窗口中看到类似图2.2的信息,即为安装成功。图2.2环境变量成功提示2.2.3Eclipse的安装登陆Eclipse的官网并下载Eclipse,下载完成后,双击Eclipse解压后目录中的eclipse.exe然后启动,选择Eclipse菜单中的Help->InstallNewSoftware->选项卡上的AvailableSoftware,点击右侧的“Add”输入后确定,然后在“Workwith”下拉菜单中选择刚刚输入的网址。过一会就会出现一个DeveloperTools选项,勾上以后点击Next以后Eclipse会自动网上查找Android开发工具插件,然后找到AndroidDDMS和AndroidDevelopmentTools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse[8]。2.2.4ADT的安装重启后翻开Eclipse菜单Help>installnewsoftware选择ADT,输入Name:ADT;Location:按OK,然后全部全部打勾,安装。一直按Next,接受其中的协议,最后会自动安装。2.2.5AndroidSDK的安装登陆AndroidSDK下载页面下载AndroidSDK,下载完成后解压。然后选择Eclipse菜单中的Windows->Preferences在左侧的Android工程中SDKLocation中填入AndroidSDK解压后的目录,然后点击Apply,如图2.3所示。图2.3SDK安装成功界面按“确定”后,重新启动计算机。重启计算机以后,进入cmd命令窗口运行android-h如果有类似以下的输出,如图2.4所示,说明SDK安装成功:图2.4验证AndroidSDK是否安装成功至此Android的开发环境搭建成功[15]。第三章系统分析与设计3.1研究目标使用组件技术在Android平台实现GPS软件的开发。具体目标包括:〔1〕界面友好,简单实用,可操作性强,适合各年龄阶层使用〔2〕程序运行速度快,占用系统内存小〔3〕软件大小要小,便于用户用直接下载使用3.2需求分析本设计实现了基于Android平台开发的GPS接收机系统设计的运行。GPS应用越来越广泛,我们的设计只是应用的根底和开端。在实际应用中我们要结合各个领域的特殊情况和特定的技术需求,进行有针对性的处理和设计。GPS提供的定位信息包括了经度、纬度、海拔、速度、航向、磁场、时间、卫星个数及其编号等卫星信息其接收数据方法类似,故本设计只是提取了其中的局部价值性较高的数据信息,主要就是显示用户当前所在位置的经纬度坐标,并可以对视图框中的地图进行放大和缩小操作,如果用户看不懂地图,还可以调用此区域的卫星视图。3.3系统功能设计系统的主要功能包括:〔1〕定位当前位置信息,通过智能内置的GPS硬件,对用户的地理位置进行卫星定位,将所得到的经纬度显示在操作界面上,并将此坐标上传至GoogleMap,以便获得当前位置的地图信息,然后将得到的信息以图片的形式显示在终端上。〔2〕地图信息的放大和缩小,用户如果所在位置比拟空旷,难以从地图上识别位置,便可放大或缩小地图,通过观察附近的道路或村庄来推断自己的实际位置。〔3〕卫星视图切换,如果用户的地图意识不强,还可以进行视图切换,看到此区域的卫星视图,这样以来就可以通过观看地图上的房屋排列或者是标志性建筑来进行定位。第四章系统实现4.1Elipse文件的结构及功能首先,要在Eclipse里面创立一个新工程,命名为MapView,如图4.1所示。图4.1工程的源代码文件下面介绍下Android的工程目录结构。res:放置应用程序用到的资源文件。其包含(Drawable,layout,values等目录)。当这个目录下的文件发生变化时,src目录下面的R.java就会自动发生变化。assets:主要放置多媒体等数据文件。res/drawable:放置应用到的图片资源。res/layout:放置一些与UI相应的布局文件,都是xml文件。res/values:放置字符串,颜色,数组等常量数据。AndroidManifest.xml:相当于应用的配置文件。在此文件里必须声明应用的名称,应用所用到的Activity,Service,Reveiver等[10]。4.2界面设计根据需求分析可以知道,应用程序包含一个界面就可以了,但是这个界面虽然简单,但是要包含一个视图框、三个按钮和一个状态栏。您当前的位置是:纬度:您当前的位置是:纬度:经度:放大缩小卫星视图〔开〕视图框图4.2用户界面草图4.3程序模块以及功能设计4.3.1程序模块介绍该程序的模块设计非常简单,总共分为五个模块:一个视图框、一个坐标显示区域和三个按钮。视图框负责对当前位置进行图像进行显示。坐标显示区域负责对显示当前坐标。三个按钮分别为:放大,缩小,卫星视图。4.3.2程序模块的功能〔1〕坐标显示区域LocationManager.GPS_PROVIDER视图框将从GPS获取最近的定位信息。location.getLatitude,获取纬度信息。location.getLongitude,获取经度信息[14]。〔2〕视图框根据GPS的定位信息,系统将通过com.google.android.maps把地图显示在视图框中。〔3〕放大、缩小钮分别调用zoomIn和zoomOut来放大或缩小地图〔4〕卫星视图编写switchMap来调用mapview.setSatellite来实现卫星视图和普通视图之间的切换。到这里该程序所要实现的功能就根本可以实现了。4.4主要功能的实现为了实现系统功能,我对此进行了深入的研究。要知道每一种移动开发环境都有自己的基类。如J2ME应用程序的基类是midlets,而Android程序的基类是Activity。这个Activity为我们提供了对移动操作系统的根本功能和事件的访问。这个类包含了根本的构造方法,键盘处理,挂起来恢复功能,以及其他底层的手持设备的访问。实质上,我们的应用程序将是一个Activity类的扩展。在本论文中我将使用Activity类来编写Android程序。View类是Android的一个超类,这个类几乎包含了所有的屏幕类型。但它们之间有一些不同。每一个view都有一个用于绘画的画布。这个画布可以用来进行任意扩展。本文为了方便起见,只涉及到了两个主要的View类型:定义View和Android的XML内容View。在上面的代码中,使用的是“HelloWorld”XMLView,它是以非常自然的方式开始的。如果我们查看一下新的Android工程,就会发现一个叫main.xml的文件。在这个文件中,通过一个简单的XML文件,描述了一个屏幕的布局。由于本文主要应用就是GoogleMapAPI,所以其中涉及到大量方法以及相关参数,简单介绍如下[12]:〔1〕GBrowserIsCompatible()--
是否支持GoogleMapAPI
〔2〕location.getLatitude()–
目标位置的纬度坐标;〔3〕location.getLongitude()–
目标位置的经度坐标〔4〕newGLatLng(myLat,myLng)--
设置经纬度〔5〕map.setCenter(newGLatLng(myLat,myLng),14)--
设置地图默认的中心点经纬度
〔6〕newGLatLng(myLat,myLng)--
设置中心点的经纬度〔7〕14--
地图的默认缩放比例大小值,范围为1-18
〔8〕newGMap2(document.getElementById("GoogleMap"))--
获取显示的地图容器〔9〕map.setMapType(G_NORMAL_MAP);--
设置显示地图的类型可选值:a.G_NORMAL_MAP--
默认地图样式b.G_SATELLITE_MAP--GoogleEarth卫星地图c.G_HYBRID_MAP--
混合模式地图〔10〕newGIcon(G_DEFAULT_ICON)--
设置标记样式〔11〕addControl()--
给地图添加控件常用的可选控件有:a.newGLargeMapControl()--
大的地图缩放级别控件b.newGOverviewMapControl()--
地图缩略图控件c.newGScaleControl()--
比例尺控件d.newGMapTypeControl()--
地图类形选择控件〔12〕enableContinuousZoom()--
允许连贯改变地图比例〔13〕createMarker(latlng)--
自定义方法〔14〕newGMarker(latlng)--
在地图中设置标签,参数latlng--
标签的坐标〔15〕Event.addListener(marker,event,function)--
给标签设置事件marker--
标签对象,
event--
事件名称function--
时间的处理函数〔16〕openInfoWindowHtml(latlng,myHtml)--
将信息框添加到标签上latlng--
标签坐标,
myHtml--
提示信息的HTML字符串4.4.1获得GoogleMapAPIKey使用GoogleMapAPI前,必须先生成GoogleMapAPIKEY.具体步骤如下:第一步:生成GoogleMapAPIKey要使用androiddebug模式下的keystore密钥库[14]。其位于C:\users\dongliang\.android\debug.keystore目录下〔dongliang是电脑用户名〕。输入命令生成MDK5Key,如图4.3所示图4.3生成MDK5Key第二步:到GoogleMapAPI的主页去申请GoogleMapAPIKEY。登录地址页面,在其中的MD5fingerprint一栏中输入刚刚生成的MD5密纹,如图4.4所示图4.4生成GoogleMapAPIKEY如果你是第一次使用GoogleMapAPI你要按照提示申请一个账号。然后就可以得到唯一密钥,本机的密钥为android:apiKey="0_kiK_qH-JI4hNZxaSZ50LaDmeX7_pxeSggjlhQ"/>4.4.2布局及按钮的设置这局部模块代码在res/layout/main.xml中:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="://schemas.android/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent">//定义一个宽高都满屏的垂直排列窗口<TextView android:id="@+id/myLocationText"android:layout_width="fill_parent"android:layout_height="wrap_content"/>//定义一个宽满屏高随内容自动拉伸的文本框<LinearLayoutandroid:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="wrap_content">//定义一个水平的流输出口<Buttonandroid:id="@+id/in"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:text="放大"/>//定义一个名称为in的按钮,其上显示放大,级别为1<Buttonandroid:id="@+id/out"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1"android:text="缩小"/>//定义一个名称为out的按钮,其上显示缩小,级别为1</LinearLayout><ToggleButtonandroid:id="@+id/switchMap"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textOff="卫星视图(关)"android:textOn="卫星视图(开)"/>//定义一个双位开关,默认显示卫星视图〔关〕,点击后显示卫星视图〔开〕,高宽都为自动拉伸类型 android:id="@+id/myMapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:apiKey="0_kiK_qH-JI4hNZxaSZ50LaDmeX7_pxeSggjlhQ"/></LinearLayout>//此为与谷歌地图连接的必要代码其中倒数第二行中就使用到了上一章节所得的密钥。4.4.3配置窗体部件字符串文件将字符串显示分别放入res/values/string.xml。代码如下:<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="hello">HelloWorld,MapView!</string><stringname="app_name>MapView</string>//显示软件的名称为MapView</resources>4.4.4关于应用配置及声明的设置<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="://schemas.android/apk/res/android"package="com.map"android:versionCode="1"android:versionName="1.0.0">//版本信息<applicationandroid:icon="@drawable/icon"android:label="@string/app_name"><activityandroid:name="MapView1"android:label="@string/app_name">//声明类MapView1<intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity><uses-libraryandroid:name="com.google.android.maps"/></application><uses-permissionandroid:name="android.permission.INTERNET"/>//允许此程序联网<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>//允许程序进行精确定位</manifest>4.4.5主程序框架介绍工程的主程序,位置应在src/com.map的两个源程序里,需要将各个包名已经类的属性进行声明,具体如下:packagecom.map;//com.map包importjava.util.ArrayList;importandroid.app.AlertDialog;importandroid.content.Context;importandroid.graphics.drawable.Drawable;importcom.google.android.maps.ItemizedOverlay;importcom.google.android.maps.OverlayItem;//以上为导入的一些方法publicclassHelloItemizedOverlayextendsItemizedOverlay//公共类的声明privateArrayList<OverlayItem>mOverlays=newArrayList<OverlayItem>();privateContextmContext;packagecom.map;//另一个com.map包importjava.util.List;importandroid.content.Context;importandroid.graphics.drawable.Drawable;importandroid.location.Criteria;importandroid.location.Location;importandroid.location.LocationListener;importandroid.location.LocationManager;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;//设置鼠标监听importandroid.widget.Button;importandroid.widgetpoundButton;importandroid.widget.TextView;importandroid.widget.ToggleButton;importandroid.widgetpoundButton.OnCheckedChangeListener;importcom.google.android.maps.GeoPoint;importcom.google.android.maps.MapActivity;importcom.google.android.maps.MapController;importcom.google.android.maps.MapView;importcom.google.android.maps.MyLocationOverlay;importcom.google.android.maps.Overlay;importcom.google.android.maps.OverlayItem;//以上都为导入的一些方法然后按照步骤开始对程序进行编译,由于篇幅限制,所以这里将只举例说明几个主要部件代码编译。地图放大缩小的相关操作@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);mapview=(MapView)findViewById(R.id.myMapView);List<Overlay>overlays=mapview.getOverlays();MyLocationOverlaymyLocation=newMyLocationOverlay(this,mapview);myLocation.enableMyLocation();overlays.add(myLocation);ctrlMap=mapview.getController();inBtn=(Button)findViewById(R.id.in);//寻找名为in的按钮将其值赋予inBtnoutBtn=(Button)findViewById(R.id.out);//寻找名为out的按钮将其值赋予outBtnswitchMap=(ToggleButton)findViewById(R.id.switchMap);OnClickListenerlistener=newOnClickListener(){@OverridepublicvoidonClick(Viewv){switch(v.getId()){caseR.id.in:ctrlMap.zoomIn();//控制地图放大break;caseR.id.out:ctrlMap.zoomOut();//控制地图缩小break;default:break;}}};inBtn.setOnClickListener(listener);outBtn.setOnClickListener(listener);对卫星视图的相关设定switchMap.setOnCheckedChangeListener(newOnCheckedChangeListener(){@OverridepublicvoidonCheckedChanged(CompoundButtoncBtn,booleanisChecked){if(isChecked==true)//如果被点击了{mapview.setSatellite(true);//显示卫星视图}else{mapview.setSatellite(false);//不显示卫星视图}}});对坐标显示区域的设置privatevoidupdateWithNewLocation(Locationlocation){ StringlatLongString; TextViewmyLocationText; myLocationText=(TextView)findViewById(R.id.myLocationText); if(location!=null)//如果location不为空{ doublelat=location.getLatitude();//获取纬度信息,并赋值给双精度的lat doublelng=location.getLongitude();//获取经度信息,并赋值给双精度的lng latLongString="纬度:"+lat+"\n经度:"+lng;//将经纬度信息赋予字符串 System.out.println(lat+""+lng);//在软件中输出经纬度信息 ctrlMap.animateTo(newGeoPoint((int)(lat*1E6),(int)(lng*1E6))); }else{ latLongString="无法获取地理信息";//如果无法得到经纬度,将"无法获取地理信息"赋予latLongString System.out.println("nolocation");//在软件中输出} myLocationText.setText("您当前的位置是:\n"+latLongString);}}第五章系统测试通过前面的一章,已经完成了GPS定位工程的代码编写工作,下面将对此工程进行实体机运行测试:〔1〕将程序目录下的apk应用文件拷贝到安卓2.2智能平台,等待开机后会出现锁屏状态,在此状态下可以看到时间日期以及的电量信息等,如下列图5.1所示。图5.1虚拟机锁屏界面图5.2主菜单中的MapView〔2〕这时滑动解锁滑条解锁,在的资源管理器中找到刚刚拷贝的文件,点击其进行安装之后就可以在主菜单中看见程序MapView,它在程序列表的第三行第二列,由安卓默认的图标显示,如上图5.2所示。〔3〕下面我们轻触MapView图标,程序就会立即运行,运行后就可以看到上一章在程序中编写的界面,其中有放大按钮,缩小按钮以及卫星视图按钮,还有最主要的地图视图框,如下列图5.3所示。图5.3程序运行界面图图5.4翻开GPS功能〔4〕由于的GPS功能没有翻开,所以我们可以看到您当前的位置这一栏显示的是无法获取地理信息,所以地图视图框中只显示程序所编写的初始化位置。下面在的设置功能中翻开其运用,具体操作是在主菜单翻开Settings功能,找到Location&securitysettings,在其中的MyLocation中就可以看见UseGPSsatellites功能,将其打勾,如上图5.4所示。〔5〕我们可以从最上方的状态栏中看到一个小卫星接受器的图标,表示GPS运用已翻开。回到MapView软件就会发现中的显示数据发生了改变,当前的地理位置的纬度及经度坐标被显示了出来,在视图框中也可以看见当前的道路信息,如下列图5.5所示。图5.5定位结果显示图5.6卫星视图显示〔6〕下面我们点击“卫星视图”按钮,会发现按钮上的字由“卫星视图〔关〕”变成了“卫星视图〔开〕”,按钮上也出现了标记的图案,通过两幅图的比拟,我们可以很明显的看出相对于普通视图,卫星视图更加的直观,极大的改善了用户的定位体验。结果如上图5.6所示。〔7〕我们在普通视图的根底上点击“放大”按钮,可以直观的看到一些刚刚没有看见的,比拟小的道路。这样以来用户在自己所处位置比拟繁华,道路过于繁多的时候,将地图放大,就可精确定位街道。这个功能是我们进行定位而常用的功能之一。结果如下列图5.7所示。图5.7放大后结果图5.8缩小后结果〔8〕下面继续点击“缩小”按钮,这个键的功能与“放大”按钮恰恰相反,它会让我们有一种地图“远去”的感觉,这样以来用户在自己所处位置比拟偏僻,且附近又没有街道的时候,就可以利用缩小地图的方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026春部编版(五四制)小学语文四年级下册第18课《文言文二则》课堂笔记
- 消防水池和泵房外墙脚手架专项工程施工方案
- 植树节活动日记500字
- 监狱物业物业管理规章制度
- 常用建筑材料行业市场分析
- 国泰海通香江策论之港股IPO、再融资及解禁对港股行情的影响-顺势而为基本面为王
- 2026《护理交接班制度》考试试题(附答案)
- 2026年高考地理新课标二卷考试全国模拟试卷
- 2025年辽宁省鞍山中小学教师招聘考试试卷及答案
- 第11课教学设计小学信息技术人教版一 二年级起点四年级下册-人教版(一、二年级起点)
- 2026届江苏省南京市、盐城市高三一模数学卷(含答案)
- 波形梁护栏监理实施细则
- 2026年张家港市事业单位公开招聘工作人员90人笔试参考题库及答案解析
- 2026年及未来5年市场数据中国工业水处理药剂行业发展运行现状及发展趋势预测报告
- 2025-2030中国导电塑料市场投资风险及应用趋势预测研究报告
- 初中数学人教版(2024)七年级下册第七章 相交线与平行线 单元测试卷(含答案)
- 2026年中国银发经济深度报告:8万亿市场下的细分赛道机会
- 俄语视听说基础教程
- 义乌环境集团招聘笔试题库2026
- 高一英语(人教版)教学课件 必修二 UNIT 4 Section Ⅵ Writing
- 齐师专单招考试真题及答案
评论
0/150
提交评论