收藏 分享(赏)

毕业设计(论文)-基于Android的手机地图应用开发(全套源程序代码).docx

上传人:QQ153893706 文档编号:2294304 上传时间:2018-09-09 格式:DOCX 页数:26 大小:1.60MB
下载 相关 举报
毕业设计(论文)-基于Android的手机地图应用开发(全套源程序代码).docx_第1页
第1页 / 共26页
毕业设计(论文)-基于Android的手机地图应用开发(全套源程序代码).docx_第2页
第2页 / 共26页
毕业设计(论文)-基于Android的手机地图应用开发(全套源程序代码).docx_第3页
第3页 / 共26页
毕业设计(论文)-基于Android的手机地图应用开发(全套源程序代码).docx_第4页
第4页 / 共26页
毕业设计(论文)-基于Android的手机地图应用开发(全套源程序代码).docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、河 北 农 业 大 学本 科 毕 业 论 文 (设 计 )题 目: Android 手机地图应用开发学 院: 信息科学与技术学院 专业班级: 计算机科学与技术专接本 1101 班 学 号: 学生姓名: 指导教师姓名: 指导教师职称: 二 O 一三 年 六 月 一 日摘 要该系统是基于高德地图的GPS定位系统,包括两个主要程序,跟踪者程序和被跟踪者程序,跟踪者程序包括五个模块:我的位置,对方的位置,同时显示两人位置,显示对方的周边公共设施,我到对方位置的公交路线规划。 被跟踪者程序在手机上不显示,通过跟踪者向被跟踪者发送短信,被跟踪者自动回复短信,以获得被跟踪者的经纬度,从而确定被跟踪者的位置及

2、周边公共设施,以及到被跟踪者的公交路线。关键字:Android ,手机地图应用全套源程序代码加 153893706AbstractThe system is GPS positioning system based on High German map, including two main program, tracking program and tracking program, tracking program consists of five modules: my position, the other position, at the same time, show the tw

3、o position, show the other side of the surrounding public facilities, I went to the bus route planning each other position. By tracking program is not displayed in the mobile phone, by tracing to the victim to send text messages, tracked automatically reply message, to obtain the latitude and longit

4、ude of tracking, so as to determine the position of being tracked and surrounding public facilities, bus routes and to be a stalker .Keywords:Android , The application of mobile phone map目录1 引言 .11.1. 课题研究意义 .11.2. 技术简介 .11.3. 开发环境 .21.3.1. 开发工具介绍 .21.4. Android 的相关技术介绍及分析 .31.4.1. Android 的功能特征 .31

5、.4.2. Android 活动的生命周期 .42 系统分析 .72.1. 需求分析 .72.2. 功能设计 .73 系统设计 .83.1. 软件功能图 .83.2. 文件结构和用途 .83.3. UI 界面设计 103.4. 程序模块以及功能设计 .113.4.1. 主界面的实现 .113.4.2. 定位自己的位置的实现 .123.4.3. 定位对方的位置的实现 .133.4.4. 同时显示两人的位置的实现 .153.4.5. 查询对方周围公共设施的实现 .163.4.6. 到对方位置的路线规划的实现 .184 结束语 .205 致谢 .216 参考文献 .2211 引言1.1. 课题研究意

6、义随着因特网发展的日新月异,人们利用网络实现资源共享以及协同工作越来越成为时代的潮流,使用各种网上的软件方便生活,已经成为了一个不可扭转的趋势 。由于GPS 系统所具有的全天候,高精度,和自动测量的特点,作为先进的测量手段和新的生产力,已经融入到了国民经济建设,国防建设和社会发展的各个应用领域。在 2000 年到2006 年期间,美国政府宣布将 GPS 的定位精度由原来的 100 米精确到 20 米,此举进一步推进了 GPS 技术的应用,提高了生产力,作业效率,科学水平以及人们的生活质量,因此可以说 GPS 技术在经济全球化的今天起着举足轻重的作用,而且可以预见的是全球定位技术对于人们的生活也

7、将越来越凸显它的重要性,人们的生活也将越来越离不开它的存在。Android 手机地图应用开发软件是一套基于 Android 平台开发的手机卫星导航寻人系统,通过快捷简便的操作界面,绑定好对方的手机号,即可对其进行卫星搜寻定位,家里有老人或小孩儿的,很容易找到他们的位置,给我们的生活带来了很大的方便。1.2. 技术简介Android 平台整体自底向上由以下四个层次组成:Linux 内核层、Android 运行时库和其他库层、应用框架层、应用程序层,如图 1-1 所示。图 1-1 Android 平台的架构图(1)Linux 内核层:Android 基于 LinuxVersion2623 内核开发

8、的,主要是添加了一个名为 Goldfish 的虚拟 CPU 以及 Android 运行所需的特定驱动代码。该层用来提供系统的底层服务,包括安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块。作为2一虚拟的中间层,该层位于硬件与其他的软件层之间。(2)Android 运行时库和其他库层:Android 运行时库包含一组核心库(提供了 Java 语言核心库内的大部分功能)和 Dalvik 虚拟机。同时 Android 提供了丰富的库类支持且大部分为开源代码,如采用的数据库为 SQLite。Android 选择它作为移动终端的嵌入式数据库有以下优点,它无需安装和管理配置,它是一个存储在单一磁盘

9、文件中的完整的数据库,体积小只有 250KB 但支持数据库大小至 2TB 提供了对事务功能和并发处理的支持,而且比目前流行的大多数数据库运行速度快。(3)应用框架层:在应用框架 Android 开发人员可以跟那些核心应用一样拥有访问框架 APIs 的全部权限。应用的系结构化设计简化了各组件之间的重用,任何应用都可以分发自己的组件,任何应用也可以使用这些分发的组件(应用的使用方法需遵循框架的安全性约束)。(4)用程序层:Android 本身会附带一些核心的应用程序,包括 E-mail 客户端、短信程序、日历、地图、浏览器、通讯录等等,目前所有的应用程序都是由 Java 语言开发的。1.3. 开发

10、环境1.3.1. 开发工具介绍Eclipse + Android SDK + ADT Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。作为一种开源软件,其发展得到了全世界软件开发厂商和技术爱好者的支持,其版本一直都在不断的升级之中,各种开发功能也在被不断的整合到 Eclipse 之上。而且,许多软件开发商都是在以Eclipse 为框架开发自己的 IDE,如比较流行的 IDE Apatna。但 Eclipse 不限于当作 Java IDE 来使用。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工

11、具开发人员都具有同等的发挥场所。Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT) 。Eclipse 的本身只是一个框架平台,但是众多插件的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。Android SDK(Software Development Kit)提供了在 Windows/Linux/Mac 平台上开发Android 应用的开发组件,Android 支持所有的平台,其包含了在 Android 平台上开发移动应用的各种工具集。工具集不仅包括了 Android 模拟器和用于 Ecli

12、pse 的 Android 开发工具插件(ADT) ,而且包括了各种用来调试、打包和在模拟器上安装应用的工具。 Android SDK 主要是以 Java 语言为基础,用户可以使用 Java 语言来开发 Android 平台上的软件应用。通过 SDK 提供的一些工具将其打包成 Android 平台使用的 apk 文件,然后用 SDK 中的模拟器(Emulator)来模拟和测试软件在 Android 平台上运行情况和效果。ADT(Android Development Tools)android 开发工具,是 Eclipse 插件。开发平台 :Windows XPJDK 版本: JDK1.631

13、.4. Android 的相关技术介绍及分析1.4.1. Android 的功能特征(l)应用程序架构:在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。(2)Dalvik 虚拟机器:在 Android 平台上所使用 Java 虚拟机,不是 Sim 公司的标准Java 虚拟机,而是使用 Google 自主开发的代号为 Dalvik 的虚拟机,它在保证 API 方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。(3)集成的浏览器:集成的浏览器是 Android 内建的浏览器,是以 WebKit 的

14、浏览引擎为基础所开发成的。WedKit 是一个开源浏览器网页排版引擎,目前使用 WebKit 引擎的浏览器主要有:Safari,Midori,Epiphany 等。配合 Android 手机的功能,可以在浏览网页时,达到更好的效果,例如:局部性的缩放网页上的资讯、触控式的操作等效果。(4)优化的绘图能力:在程序里可以用到的绘图功能分为 2D 与 3D 两个方面。在 2D 方面,Android 提供了一套特有的类库(SGL;而在 3D 方面则是使用 OpenGLES1.0(openGL for Embedded systems)规范的类库。它们是一种非常快的图形引擎,并且支持硬件加速。(5)SQ

15、Lite 数据库:SQLite 提供结构化的数据存取。SQLite 是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。它能够支持 Windows/Linux/U nix 等主流的操作系统,同时能够跟很多程序语言相结合,比如 php,Java 等,还有 ODBC 接口,同样比起 Mysql,PostgreSQL 来讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小只有 250KB 但支持数据库大小至 2TB。它虽然很小巧,但是支持的 SQL 语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处

16、理等等。SQLite 也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。(6)多媒体的支持能力:主要用于播放媒体文件。这同时包括对音频(如播放 MP3 或其他音乐文件等)和视频(如播放从网上下载的视频)的支持,并支持“播放 URI 地址”(Note:URI 即是统一资源识别地址)模式在网络上直接播放的流媒体。另外支持各种通用的静态图像格式,例如:JPG、PNG、GIF 等格式。(7)GSM 技术:Global System for Mobile Communications,即全球移动通讯系统,俗称”全球通” ,是一种起源于欧洲的移动通信技术标准,是第二代移动通

17、信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。GSM 技术是属于手机硬件方面的展现,也是在开发 Android 应用程序时可以突出的特点之一。4(8)蓝牙、EDGE、3G 及 Wi-Fi:蓝牙是一种新型、开放、低成本、短距离的无线连接技术,可取代短距离的电缆,实现话音和数据的无线传输。EDGE(Enhanced Data Rate for GSM,Evolution),即增强型数据速率 GSM 演进技术。EDGE 是一种从 GSM 到 3G 的过渡技术,它主要是在 GSM 系统中采用了一种新的调制方法,即最先进的多时隙操作和SPSK 调制技术。

18、由于 8PSK 可将现有 GSM 网络采用的 GMSK 调制技术的信号空间从 2 扩展到 8,从而使每个符号所包含的信息是原来的 4 倍。Wi-Fi(WirelessFidelity),即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。该技术使用的是 2.4GHz 附近的频段,该频段目前尚属没用许可的无线频段。其目前可使用的标准有两个,分别是 IEEE802.lla 和 IEEE802.11b。这些通讯能力也是属于手机硬件方面的展现,也是在开发 Android 应用程序时可以突出的特点之一。(9)GPS: Global Positioning System,即全球定位

19、系统,它是一个由覆盖全球的 24颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到 4颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时等功能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬体方面的体现,也是在开发 Android 应用程序是可以突出的特点之一。1.4.2. Android 活动的生命周期Android平台是个手机作业系统。撇掉其他功能不谈,手机的特性,就是应该能随时在未完成目前动作的时候,暂停正在使用的功能,切换到接电话、接收短信模式,而且在接完电话回到应用程序时,还希望能看到一样的内容。现在用户使用智能

20、手机,大多已习惯使用多工的作业系统(如windowsMobile),可以在用手机听音乐的同时,执行其他多个程序。同时执行多个程序有它的明显好处,但也有它的缺点。每多执行一个应用程序,就会多耗费一些系统内存,而手机里的内存是相当有限的。当同时执行的程序过多,或是关闭的程序没有正确释放掉内存,系统运行时就会觉得越来越慢,甚至不稳定。为了解决这个问题,Android引入了一个新的机制生命周期。Android应用程序的生命周期是由Android框架进行管理,而不是由应用程序直接控制。通常,每一个应用程序(入口一般会是一个活动的onCreate方法),都会占据一个进程。当系统内存即将不足的时候,会依照优

21、先级自动进行进程的回收。不管是使用者或开发者,都无法确定应用程序何时会被回收。关于进程的生命周期将在下一节中介绍,本节主要介绍活动的生命周期。一个活动类别除了OnCreate方法之外,还预先定义了onPause(暂停)、OnResume(继续)等的基本方法,当从一个活动切换到另一个活动的时候,原来的活动将经过一连串的状态改变。开发者可以在程序中添加一些各状态相对应的流程,每次活动状态改变时,就会执行相对应的流程。要让用户有好的使用体验,活动需要在各个周期中负责保管状态、恢复状态、传送资料等工作。一、活动的生命状态Android的虚拟机是使用堆栈管理。主要有四种状态:5(l)活动状态活动状态是指

22、用户启动应用程序或活动后,活动运行中的状态。在Android平台上,同一个时刻只会有一个活动处于活动或运行状态。其他的活动都处于未启动、停止或是暂停的状态。(2)暂停状态暂停状态是指当活动暂时暗下来,退到背景画面的状态。当警告对话框或电话来了时,都会让原来运行的活动退到背景画面。新出现的警告对话框等界面元件盖住了原来的活动画面。活动处在暂停状态时,用户无法与原活动互动。(3)停止状态停止状态是指有其他活动正在执行,而这个活动己经离开屏幕,不再动作的状态。通过按返回键,可以调出所有处于停止状态的应用程序列表。处于停止状态的活动,还可以通过通知来唤醒。(4)已回收或未启动状态已回收或未启动状态是指

23、活动尚未被启动、已经被手动终止或己经被系统回收的状态。要手动终止活动,可以在程序中调用finish方法。如果是被系统回收,可能是因为内存不足 图1-2 Android活动生命周期了,所以系统根据内存不足时的回收规则,将处于停止状态的活动所占用的内存回收。图1-2所示的七个状态又可以归纳成三组:(l)资源分配(创建/销毁)完整的活动生命周期由创建状态开始,由销毁状态结束。创建时分配资源,销毁时释放资源。(2)可见与不可见(启动/重新启动/停止)6当活动运行到启动状态时,就可以在屏幕上看到这个活动。相反地,当活动运行到停止状态时,这个活动就会从屏幕上消失。当用户按下返回键回到上一个活动时,会先到重

24、新启动状态,再到一般的启动状态。(3)用户取得屏幕的控制权(继续/暂停)当有个警告对话框、短信、电话等信息进入时,原来的活动会进入暂停状态,暂时放弃屏幕的控制权,被中断到背景去,将前景交给优先级高的事件。当这些优先级高的事件处理完后,活动就改进入继续状态,此时又取得屏幕的控制权。二、活动的运作流程由实际运行来看,我们可以归纳出所有Android应用程序都遵循的运作流程:(l)一般启动启动一个活动的基本流程为onCreate一onstart一onResume。该流程首先分配资源给这个活动(创建状态),然后将活动的内容显示到屏幕上(启动状态);在一切就绪后,取得屏幕的控制权(恢复状态),用户可以开

25、始使用这个程序。(2)调用另一个活动调用另一个活动的基本流程为onpause(l)一onCreate(2)一onstart(2)一0nResume(2)一onStop(l)。该流程首先冻结原来的活动,再交出屏幕控制权;直到活动2完成一般启动流程后,活动1才会被停止。(3)回到原来活动回到原来活动的基本流程为onPause(2)一onRestart(1)一onstart(l)一onResume(1)一onstop(2)一onDestroy(2)。另外按返回键也可以回到原来的活动。(4)退出结束退出结束的基本流程为onPause一onStop一onDestroy。如果程序中有直接调用finish方

26、法来关闭活动的话,系统会跳过先冻结的阶段,直接暂停,停止,然后销毁。(5)回收后再启动回收后再启动的基本流程为oncreate一onstart一onresume。如果被回收掉的活动一旦又重新被调用时,会像一般启动一样再次调用活动的onCreate方法。当在模拟器上已经执行过多个应用程序,只要按下返回键,就会开启最近一次开启过的活动。所以如果要让再次被创建的活动跟原来开启过的一样,那么在活动之间切换时,就要保存资料:即在每次活动运行到暂停或停止状态时先保存资料,然后在创建时将资料读出来。72 系统分析2.1. 需求分析手机的地图应用主要功能是以图形、文字的形式为用户提供地图服务,并提供友好、方便

27、、快捷的操作界面。用户需求包括:( l )地图控制:能够对地图进行放大、缩小和移动;( 2 )实时定位用户的位置:能够将用户当前位置在地图上标注出来,并能随着位置的变化而实时更新,即在地图上定位用户的当前位置;( 3 )实时定位与用户手机绑定的手机的位置:能够定位到与自己手机绑定的手机的位 置( 4 )查询两个位置的交通路线:能够在地图上显示到达对方的交通路线。( 5 )查询对方所在位置周围的公共服务设施:能够根据对方的当前位置,查询该位置附近所需要的信息,比如附近的银行信息、餐馆信息等。2.2. 功能设计 Android 支持地理定位服务的 API。该地理定位服务可以用来获取当前设备的地理位

28、置。应用程序可以定时请求更新设备当前的地理定位信息。应用程序也可以借助一个 Intent接收器来实现如下功能:以经纬度和半径划定的一个区域,当设备出入该区域时,可以发出提醒信息。该系统是基于高德地图的 GPS 定位系统,包括两个主要程序,跟踪者程序和被跟踪者程序,跟踪者程序包括五个模块:我的位置,对方的位置,同时显示两人位置,显示对方的周边公共设施,我到对方位置的公交路线规划。通过跟踪者向被跟踪者发送短信,被跟踪者自动回复短信,以获得被跟踪者的经纬度,从而确定被跟踪者的位置及周边公共设施,以及到被跟踪者的公交路线。83 系统设计3.1. 软件功能图图 3-1 软件功能图3.2. 文件结构和用途

29、在程序开发阶段,首先确定“Android 手机地图应用开发软件”的工程名为TrackerGPS 和 ByTracker,据程序模块设计的内容,建立 TrackerGPS 工程HE。TrackerGPS 工程源代码的结构如图3-1所示。为了使源代码文件的结构更加清晰,TrackerGPS 工程设置了多个命名空间,分别用来保存用户界面和工具实体的源代码文件,源代码文件的名称以及说明。 GPS 定位软件主页我到对方位置的路线规划我的位置 对方的位置同时显示两人位置对方位置的周围公共设施9图3-2 TrackerGPS 工程的源代码文件表3-1 TrackerGPS 工程的文件用途说明包 名 称 文

30、件 名 说 明MainActivity.java “显示主界面”的 Activitycom.demo.trackergpsSendMessage.java “发送短信”的 Activitycom.demo.trackergps.mylocation MyLocation.java “定位我的位置”的 Activitycom.demo.trackergps.herloation HerLocation.java“定位对方的位置”的Activitycom.demo.trackergps.heraround ShowHerAround.java“查询对方的周围公共设施”的 Activitycom.d

31、emo.trackergps.togetherlocation TogetherLocation.java“同时显示双方位置”的ActivityToHerRoute.java “到对方位置的路线规划”的ActivityRouteSearchAdapter.java“构造搜索地址适配器”的Activitycom.demo.trackergps.toherrouteRouteSearchPoiDialog.java“显示搜索到的地址列表”的Activitycom.demo.util Constants.java 错误码常量类10Android 的资源文件保存在/res 的子目录中。其中/res/d

32、rawable/目录中保存的是图像文件,/res/values 目录中保存的是用来自定义字符串和颜色的文件,/res/xml 目录中保存的是 XML 格式的数据文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中,具体每个资源文件的用途可以参考表3-2:表3-2 资源文件名称与用途资源目录 文 件 说 明map_switch_icon.pngda_marker_red.pngbtn_poi_search_normal.pngdrawable-hdpi这个文件夹里是工程里所用的图片,此处不赘述。activity_main.xml “首页”的布局Activity_route.xml “到对方

33、位置的路线规划”的布局activity_showaround.xml“查询对方位置周围公共设施”的布局layout. 还有很多的 layout,不赘述style.xml 保存样式的 XML 文件strings.xml 保存字符串的 XML 的文件valuescolor.xml 保存颜色样式的 XML 文件3.3. UI 界面设计根据需求分析可以知道,应用程序包含六个界面,其中主界面有五个按钮,根据对用户界面显示内容的分析,绘制出用户界面的草图,如图 3-3 所示。布局结果如下图所示:11标题我的位置对方的位置同时显示两人的位置对方位置的周围公共设施我到对方位置的路线规划3.4. 程序模块以及功

34、能设计3.4.1. 主界面的实现(1) 界面展示图 3-4 主界面(2) 功能介绍图 3-3-1 包含五个按钮,每个按钮对应一个功能,通过单击按钮展示相应的功能,单击按钮事件需要传递数据。图 3-3 界面布局框图123.4.2. 定位自己的位置的实现(1)界面展示图 3-5 自己的位置界面(2)功能介绍通过高德地图封装好的MyLocationOverlay类定位到自己的位置。MyLocationOverlay是一个覆盖,它绘制用户当前在地图上的位置(精准度)和/或一个嵌入的指南针。(3)主要代码的实现以下代码段主要是实现显示高德地图,显示缩放工具,显示地图的缩放级别,设置地图的中心,显示指南针

35、。mMapView = (MapView) findViewById(R.id.mapView);mMapView.setBuiltInZoomControls(true);mMapController = mMapView.getController();/用给定的经纬度构造一个GeoPoint,单位是微度(度* 1E6)point = new GeoPoint(int) (38.85049 * 1E6), (int) (115.485115 * 1E6);/设置地图中心点 mMapController.setCenter(point);/设置地图zoom 级别mMapController.

36、setZoom(12); mMyLocationOverlay = new MyLocationOverlay(MyLocation.this, mMapView);mMyLocationOverlay.enableMyLocation();/ 打开指南针mMyLocationOverlay.enableCompass();mMapView.getOverlays().add(mMyLocationOverlay);mMyLocationOverlay.runOnFirstFix(new Runnable() public void run() handler.sendMessage(Mess

37、age.obtain(handler, 1002);13);3.4.3. 定位对方的位置的实现(1)界面展示图 3-6 对方的位置界面(2)功能介绍通过发送短信到已绑定的手机上,对方手机自动回复短信,将经纬度信息回复到我的手机上,我的手机通过逆地理编码方式定位到对方的位置显示在地图上。(3)主要代码的实现以下代码主要实现发送、接收短信的功能,并根据接收到的经纬度信息定位到对方的位置。发送并接收短信的代码:/注册短信发送与对方接收到广播消息 registerReceiver(sendMsg, new IntentFilter(“SENT_SMS_ACTION“);registerReceiver

38、(delivery, new IntentFilter(“DELIVERED_SMS_ACTION“);/注册接收短信广播IntentFilter smsitf=new IntentFilter(“android.provider.Telephony.SMS_RECEIVED“); smsitf.setPriority(10000);smsbr=new SmsBroadcastReceiver();registerReceiver(smsbr,smsitf);/实现注册的 广播服务private BroadcastReceiver sendMsg =new BroadcastReceiver(

39、)Overridepublic void onReceive(Context context, Intent intent) if(getResultCode()=Activity.RESULT_OK)Toast.makeText(context,“发送成功!“, Toast.LENGTH_LONG).show();14elseToast.makeText(context,“发送失败!“, Toast.LENGTH_LONG).show();private BroadcastReceiver delivery=new BroadcastReceiver()Overridepublic void

40、 onReceive(Context context, Intent intent) / TODO Auto-generated method stubToast.makeText(context, “接收完成!“, Toast.LENGTH_LONG).show();/发送短信public void sendMsg(String msg,String num)if(TextUtils.isEmpty(msg)|TextUtils.isEmpty(num)return ;SmsManager sms=SmsManager.getDefault();Intent sendIntent =new

41、Intent(“SENT_SMS_ACTION“);PendingIntent sentPI=PendingIntent.getBroadcast(this,0, sendIntent, 0);Intent deliverIntent =new Intent(“DELIVERED_SMS_ACTION“);PendingIntent deliveryPI=PendingIntent.getBroadcast(this,0, deliverIntent, 0);sms.sendTextMessage(num, null, msg, sentPI, deliveryPI);定位到对方位置的代码:I

42、ntent intent = getIntent();/获得短信中的经纬度double latitude = intent.getDoubleExtra(“latitude“,0.0);double longitude = intent.getDoubleExtra(“longitude“,0.0);/用给定的经纬度构造一个GeoPoint,单位是微度(度* 1E6)point = new GeoPoint(int) (latitude * 1E6), (int) (longitude* 1E6); /设置地图中心点mMapController.setCenter(point);/设置地图zo

43、om 级别 mMapController.setZoom(12);mMapView.getOverlays().add(new MyOverly();public class MyOverly extends Overlay Overridepublic void draw(Canvas canvas, MapView mapView, boolean shadow) / TODO Auto-generated method stubsuper.draw(canvas, mapView, shadow);Point screenPts = new Point();15mapView.getPr

44、ojection().toPixels(point, screenPts);/-add the marker-Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.da_marker_red); canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);3.4.4. 同时显示两人的位置的实现(1)界面展示图 3-7 显示两人位置的界面(2)功能介绍结合前面定位自己的位置和定位对方的位置,将两个定位代码结合起来。(3)主要代码的实现以下代码主要实现以对方位

45、置的经纬度为中心,显示对方的位置和我的位置,并在地图上标注出来。double latitude = intent.getDoubleExtra(“latitude“,0.0);double longitude = intent.getDoubleExtra(“longitude“,0.0);/用给定的经纬度构造一个GeoPoint,单位是微度(度* 1E6)point = new GeoPoint(int) (latitude * 1E6), (int) (longitude * 1E6);/以对方位置为地图中心 mMapController.setCenter(point); /设置地图zo

46、om 级别mMapController.setZoom(11); mMyLocationOverlay = new MyLocationOverlay(TogetherLocation.this, mMapView);/定位我的位置16mMyLocationOverlay.enableMyLocation();/ 打开指南针mMyLocationOverlay.enableCompass();mMapView.getOverlays().add(mMyLocationOverlay); mMyLocationOverlay.runOnFirstFix(new Runnable() public

47、 void run() handler.sendMessage(Message.obtain(handler, 1002););mMapView.getOverlays().add(new MyOverly();public class MyOverly extends Overlay Overridepublic void draw(Canvas canvas, MapView mapView, boolean shadow) / TODO Auto-generated method stubsuper.draw(canvas, mapView, shadow);Point screenPt

48、s = new Point();mapView.getProjection().toPixels(point, screenPts);/-add the marker-Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.da_marker_red); canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);3.4.5. 查询对方周围公共设施的实现(1)界面展示图 3-8 对方周围公共设施界面(2)功能介绍17先定位到对方的位置,输入搜索关键字(例如:

49、银行,餐厅等公共服务),查询对方所在位置周围的公共设施。(3)主要代码的实现以下代码主要实现搜索对方所在位置 2000 米以内所有类型的公共服务设施并指定区号,每次返回结果最多为 10 条。public void onClick(View v) final String searchStr = searchEditText.getText().toString();if(searchStr.equals(“) Toast.makeText(ShowHerAround.this, “请输入搜索关键字“, Toast.LENGTH_LONG).show(); else searchButton.setEnabled(false);while(lat = 0)/设置地图中心点mMapController.setCenter(point); Thread t = new Thread(new Runnable() public void run() try / 设置搜索字符串,“0312

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报