搜档网
当前位置:搜档网 › Android平台下基于百度地图API的地图导航设计

Android平台下基于百度地图API的地图导航设计

本科毕业论文(设计)

题目Android平台下基于百度

地图API的地图导航设计

专业电子信息科学与技术

作者姓名刘茂强

学号2010201507

单位物理科学与信息工程学院

指导教师郎丰法

2014 年 05月

教务处编

原创性声明

本人郑重声明:所提交的学位论文是本人在导师指导下,独立进行研究取得的成果。除文中已经引用的内容外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得聊城大学或其他教育机构的学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,均在文中以明确的方式表明。本人承担本声明的相应责任。

学位论文作者签名:日期:

指导教师签名:日期:

目录

前言 (9)

1.绪论 (10)

1.1 背景及意义 (10)

1.2 研究现状 (10)

1.3 研究课题主要内容 (11)

1.3.1 地点搜索和位置定位 (11)

1.3.2 附近搜索 (11)

1.3.3 路线规划 (11)

1.3.4 公交线路查询 (11)

1.3.5 GPS导航 (11)

1.4 论文结构 (11)

2.Android平台与开发环境 (13)

2.1 Android系统 (13)

2.1.1 后缀简介 (13)

2.1.2 应用组件 (13)

2.1.3 系统运行库 (14)

2.2 Eclipse (14)

2.2.1 基本介绍 (14)

2.2.2 主要组成 (15)

2.2.3 软件开发包 (15)

2.3 Android开发环境搭建 (15)

3.相关配置和框架结构 (16)

3.1 工程配置 (16)

3.1.1 Android SDK的配置 (16)

3.1.2 定位SDK的配置 (16)

3.1.3 导航SDK的配置 (16)

3.2 密钥申请 (17)

3.2.1 密钥简介 (17)

3.2.2 申请步骤 (17)

3.3 配置AndroidManisfet.xml (19)

3.3.1权限配置 (19)

3.3.2 添加对应的开发密钥 (19)

3.3.3 声明service组件 (19)

3.4 程序结构 (19)

4.主页面设计 (21)

4.1 基本配置 (21)

4.1.1 配置main.xml (21)

4.1.2 配置AndroidManifest.xml (21)

4.2 MainActivity代码设计 (21)

4.2.1创建地图MainActivity,并import相关类 (22)

4.2.2 MainActivity变量定义 (22)

4.2.3 MainActivity主要变量初始化 (22)

4.2.4 各控件设置 (22)

4.2.5 选择菜单 (23)

4.2.6 搜索事件处理 (24)

4.2.7 定位事件处理 (25)

5.附近搜索设计 (26)

5.1 基本配置 (26)

5.1.1 配置near.xml (26)

5.1.2 AndroidManifest.xml (26)

5.2 NearActivity代码设计 (26)

5.2.1 创建地图NearActivity,并import相关类 (26)

5.2.2 NearActivity变量定义 (26)

5.2.3 NearActivity主要变量初始化 (27)

5.2.4 各控件设置 (27)

5.2.5 事件处理 (27)

6.路线规划设计 (29)

6.1 基本配置 (29)

6.1.1 配置way.xml (29)

6.1.2 AndroidManifest.xml (29)

6.2 WayActivity代码设计 (29)

6.2.1 创建地图WayActivity,并import相关类 (29)

6.2.2 WayActivity变量定义 (29)

6.2.3 WayActivity主要变量初始化 (30)

6.2.4 各控件设置 (30)

6.2.5 搜索结果处理 (31)

6.2.6 节点浏览 (31)

7.公交查询设计 (34)

7.1 基本配置 (34)

7.1.1 配置bus.xml (34)

7.1.2 AndroidManifest.xml (34)

7.2 BusActivity代码设计 (34)

7.2.1 创建地图BusActivity,并import相关类 (34)

7.2.2 BusActivity变量定义 (35)

7.2.3 WayActivity主要变量初始化 (35)

7.2.4 各控件设置 (35)

7.2.5 事件处理 (35)

8.驾车导航设计 (38)

8.1 基本配置 (38)

8.1.1 配置navigation.xml (38)

8.1.2 AndroidManifest.xml (38)

8.2 NavigationActivity代码设计 (38)

8.2.1 创建地图NavigationActivity,并import相关类 (38)

8.2.2 NavigationActivity变量定义 (39)

8.2.3 NavigationActivity主要变量初始化 (39)

8.2.4 设置单击事件 (39)

总结 (42)

致谢 (43)

参考文献 (44)

附录 (45)

摘要

在近年来移动设备智能化、轻便化的趋势下,地图导航已经成为人们出行必不可少的工具,给人们的生活带来了极大的便利。百度地图API(Application Programming Interface,应用程序编程接口)是为开发者免费提供的一套基于百度地图服务的应用接口,包括Android SDK(Software Development Kit,软件开发工具包)、定位SDK等多种开发工具与服务,提供基本地图展现、搜索、定位等功能。由于开发百度地图的免费性和使用安卓平台的开源性,不仅能够有效降低开发成本,而且能使每个用户自由的获取信息,这也为手机地图导航定位服务的普及做出了重要的贡献。《Android平台下基于百度地图API的地图导航设计》采用时下最新版的百度地图API,该应用可以用来浏览城市地图、位置定位、附近搜索、公交路线查询、线路规划、驾车导航等功能,具有很强的实用性。

关键词:Android应用,百度地图API,地图导航

Abstract

In recent years, under the trend of the intelligent and portable mobile devices, the navigation of map have become an indispensable tool for people when they travel and have brought great convenience to people's life. Baidu Map API(Application Programming Interface) is one set of the free application which is provided for developers and based on Baidu Map service Interface, including the Android SDK (Software Development Kit), l ocative SDK and other developmental tools and services. It provides basic map display, research, positioning and other functions. Due to the free use of Baidu Map and the use of the open nature of Android platform, it not only can effectively reduce the cost of development, but also can make each user free access to information. Besides, it makes great contributions to the popularity of navigation of m ap and positioning services. “The navigation of map based on Baidu Map API under the Android platform” uses the latest version of the Baidu Map API, and it can be used to skim through the city map, locate, research the nearby, find out the bus transportation routes, plan the routes, navigate the driving and other functions. It has very strong practicability.

Key words: Android Application, Baidu Map API, Navigation Of Map

2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。[1]随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。谷歌于2007年11月推出了一款开源的移动终端操作系统—Android,截止到2014年5月数据显示,安卓占据全球智能手机操作系统市场80%的份额,中国市场占有率为78.1%。在2010年,百度宣布百度地图免费对外开放,使其广泛应用于互联网、移动设备、车厂等行业。比如搜房、糯米、去哪儿网、百姓网、同程网等都或多或少的使用了百度地图的API。2014年2月,阿里耗资11亿美金全资收购高德,由此可见,地图的底层数据库资源,将在未来的互联网巨头竞争中扮演越来越重要的角色。

百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口。该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK 接口,可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。百度地图Android SDK提供的所有服务是免费的,接口使用无次数限制。申请密钥(key)后,才可使用百度地图。现在最新的版本为Android SDK v2.4.1[2]、定位SDK v2.4.1[3],同时新加了Android导航 SDK v1.0.0[4]。主要功能有:地图:提供地图展示和地图操作功能;

POI检索:支持周边检索、区域检索和城市内检索;

线路规划:支持公交信息查询、公交换乘查询、驾车线路规划和步行路径检索;

定位:采用GPS、WIFI、基站、IP混合定位模式;

离线地图:使用离线地图可节省用户流量,提供更好的地图展示效果;

导航:GPS导航、路线全览、文字导航、语音播报、实时路况、路线规划。

1.1 背景及意义

随着移动平台操作系统的快速发展和地图导航应用领域的不断延伸,在手机上拓展GPS功能已成为移动应用开发的一个热点。为了寻找某个地点,人们常常需要耗费大量的精力,所以伴随着现代生活节奏的不断加快,实时的地理位置信息正在成为人们最渴求的信息之一。因此,设计和优化地图定位服务的应用具有非常实用的价值。[5]

1.2 研究现状

中国IT研究中心(CNIT-Research)发布的《2014年中国手机地图市场监测报告》显示,百度手机地图以55.2%的市场份额高居榜首,高德地图以20.7%的市场份额位居第二,搜狗地图排名第三,市场份额为6.3%。

截止2014第一季度,中国智能手机用户规模为7.15亿户,其中手机地图APP 在智能手机地图的用户渗透率为81.4%,中国手机地图用户规模达5.82亿。其中,2014年中国手机地图产品累计用户规模市场份额如下图所示:

图1 2014年中国手机地图产品累计用户规模市场份额中国IT研究中心数据显示,截止2014年百度手机地图累计用户市场份额进一步提高,以55.2%的市场份额高居榜首,高德地图排在第二位,市场份额为

20.7%,搜狗地图排第三位,市场份额为 6.3%。此外,图吧地图、腾讯地图、谷歌地图和其它手机地图分别占5.9%、4.3%、3.5%和4.1%。

数据显示,百度手机地图继续主导中国手机地图市场,市场份额超过55%。高德地图市场份额则仍以较大优势领先于搜狗地图等其它手机地图产品稳居第二位。

1.3 研究课题主要内容

1.3.1 地点搜索和位置定位

地点搜索可以显示该地点的基本的地图信息,包括道路、街道、学校、公园等内容。位置定位可显示当前所在的位置信息,同时也支持地图的点击、双击、长按、缩放、旋转、改变视角等操作。

1.3.2 附近搜索

可根据搜索地点和搜索内容(餐厅﹑超市﹑酒店等),显示以该点为中心周边1000米内的目标地点,点击可查看详情。

1.3.3 路线规划

根据起点和终点进行线路规划,有三种线路模式,分别为步行﹑驾车和公交路线规划。结果会在地图上以路线的方式显示,点击可查看每个节点的信息。

1.3.4 公交线路查询

输入需要查询的城市公交线路,可在地图上显示公交起点和终点之间的路线,点击可查看每个站点的信息。

1.3.5 GPS导航

可根据输入的起点和终点进行线路规划,路线规划成功后,即可以进入导航。

1.4 论文结构

文章分为四个部分。

第一章主要介绍论文的研究背景,意义和研究课题的主要内容。

第二章主要介绍有关Android平台和Eclipse的相关知识以及Android开发环境的搭建。

第三章主要介绍使用百度地图SDK时的工程配置,密钥申请,AndroidManisfet.xml中相关权限的配置及程序结构。

第四章主要介绍主界面的设计,包括Layout界面布局、AndroidManisfet. xml配置、Import相关类、变量定义、初始化和相关事件的处理。

第五章至第八章主要介绍附近搜索、路线规划、公交查询和驾车导航的设计过程,思路与主界面设计类似。

最后在论文的结尾大致描述了一下设计的过程,同时对软件设计存在的问题做出了分析。

2.Android平台与开发环境

2.1 Android系统

Android的系统架构[6]和其操作系统一样,采用了分层的架构。

图2 Android系统架构图

从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。

2.1.1 后缀简介

APK是安卓应用的后缀,是AndroidPackage的缩写,即Android安装包(APK)。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。一个APK文件的主要结构为:

res,存放资源文件的目录;

AndroidManifest.xml,程序全局配置文件;

classes.dex,Dalvik字节码;

resources.arsc,编译后的二进制资源文件。

2.1.2 应用组件

Android开发四大组件分别是:

活动(Activity),用于表现功能;

服务(Service):后台运行服务,不提供界面呈现;

广播接收器(BroadcastReceiver),用于接收广播;

内容提供商(Content Provider):支持在多个应用中存储和读取数据,相当于数据库。

2.1.3 系统运行库

Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:系统 C 库,一个从BSD继承来的标准C系统函数库 Libc,它是专门为基于Embedded linux的设备定制的;

媒体库,基于PacketVideo OpenCORE。该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MP3、AAC、AMR、 JPG、PNG;

Surface Manager,对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合;

LibWebCore,一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。

2.2 Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。[7]就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

2.2.1 基本介绍

虽然大多数用户很乐于将Eclipse当作 Java 集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境(Plug In Development Environment,PDE),这个组件主要针对希望扩展 Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言。例如,支持诸如C/C++、COBOL、PHP 等编程语言的插件已经可用,或预计将会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。

基于Eclipse 的应用程序的一个突出例子是IBM Rational Software Architect,它构成了IBM Java开发工具系列的基础。

2.2.2 主要组成

Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse 工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成:Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发,CDT支持C开发,PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。

2.2.3 软件开发包

Eclipse SDK(软件开发者包)是Eclipse Platform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以 GPL发布,第三方组件有各自自身的许可协议。

2.3 Android开发环境搭建

Android开发工具有很多,开发者可根据自己的喜好进行选择。在此,推荐使用Eclipse作为自己的开发工具。搭建Android开发环境[8]首先要确保安装并配置了Java开发环境和Eclipse软件。操作步骤如下:

下载android-sdk-windows.rar和ADT-22.3.0.zip;

将android-sdk-windows.rar解压到指定的目录(目录中不要出现空格中文),运行sdk manager安装需要的android版本;

C:\WINDOWS\system32\drivers\etc\hosts,在末尾加入74.125.237.1 dl-ss https://www.sodocs.net/doc/561584747.html,;

在eclipse\dropins目录下创建adt文件夹,再在adt文件夹下创建eclipse 目录,将adt中的features、plugins放入新建的eclipse目录并重启eclipse;

将..\android-sdk-windows\platform-tools和..\android-sdk-Windows\to ols配置到path环境变量中。

相关主题