android开发论文

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业设计(论文)
题目基于Android平台的
手机地图应用开发
专业数字媒体技术
班级媒体091
学生学号 **********
学生姓名齐文龙
指导教师张二虎(教授)
完成时间 2013年6月
2013年
Abstract
摘要
随着智能手机一步步走进普通人的生活,它将成为人们获取信息的主要设备。

因此手机的应用服务将会有很大的发展空间,手机地图服务就是其中之一。

传统的地图服务主要以使用网页方式实现,这些方式仅限于室内或者携带电脑,并不适合户外、出差、旅游等场合下进行,给用户带来极大不便。

手机地图的发展满足了人们在手机上对地理信息的需求。

Android集成了地图模块和丰富的API,能有效的支持嵌入式软件在分布式移动环境中的定位功能。

所以,基于Android的手机地图能精确定位您所在的位置,并能实现公交、步行等路线规划和场所的检索功能。

本文采用了百度地图API包作为开发包,成功实现了地图应用的开发。

百度地图包具有快速强大的搜索功能、精致的地图界面、地图信息全、方便用户后期开发等优点,所以国内开发者都倾向于采用百度地图开发包。

系统使用java语言和eclipse开发工具进行编写。

同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程遇到的问题和解决方法进行了讨论。

本系统页面设计精美,视觉效果良好,应用简单方便。

主要功能包括手机实时定位,指定地点的寻址,酒店、ktv 等场所的查找,规划导航路径等。

关键词:Android,百度地图API,GPS,eclipse
摘要
Abstract
As smartphones step by step into the lives of ordinary people, it will become the main equipment for people to obtain information. Therefore, the application of mobile services will have great development space, mobile map service is one of them .The traditional use of web map services mainly be achieved, these methods are limited to indoor or portable computer, not suitable for outdoor, travel, tourism and other occasions carried out has caused great inconvenience to the user .The development of mobile maps to meet the people on the phone on the geographic information needs. Android integrates a map module and rich API, which can effectively support the embedded software in a distributed mobile environment positioning. Therefore, the Android-based mobile maps can pinpoint your location, and can achieve public transport, walking and other places of route planning and search functions.
Here used Baidu Maps API package as a development kit, the successful implementation of the map application development. Baidu map pack with fast powerful search capabilities , sophisticated map interface , map information full , user- late development , etc., so that domestic developers tend to use Baidu Map development kit .
The system using java language and development tools for writing eclipse. At the same time gives a detailed system design process , part of the interface and main functions of operation flow chart diagram , this article on the development process problems and solutions are discussed.
Abstract
The system's page is beautifully designed, visual effect is good and easy application. It main functions include mobile real-time location, specify the location of addressing, hotel, KTV and other places of search, planning, navigation path and so on.
Key Words: Android, Baidu Map API, GPS, eclipse
目录
目录
1绪论 (1)
1.1研究背景及意义 (1)
1.2课题目前发展现状 (1)
1.3本文的研究内容与结构安排 (2)
2 Android智能手机平台概述 (3)
2.1 Android手机平台的优点及特征 (3)
2.1.1 Android手机平台的优点 (3)
2.1.2 Android手机平台的特征 (3)
2.2 Android系统构架 (4)
2.3 Android software development kit(SDK) (6)
2.4 关于Eclipse (6)
3 系统设计及相关技术 (9)
3.1系统需求分析 (9)
3.2 系统总体流程图 (9)
3.3 系统关键技术 (10)
3.3.1 Android界面布局 (11)
3.3.2 Activity之间的传值 (12)
4系统实现 (13)
4.1地图展示的实现 (13)
4.1.1 Android SDK 下载与安装 (13)
4.1.2获取API Key (14)
4.1.3显示地图 (15)
4.2 菜单功能的实现 (16)
4.3 定位功能的实现 (17)
目录
4.4 路线导航功能的实现 (18)
4.5 地点检索功能的实现 (20)
5项目调试与系统测试 (23)
6总结与展望 (25)
致谢 (27)
参考文献 (29)
2013届数字媒体技术专业毕业设计(论文)
1 绪论
1.1 研究背景及意义
随着智能手机的普及和发展,基于地图的服务不断深入社会的生活。

Android是目前最流行的手机智能系统,其强大、快速的处理能力吸引了很多手机厂商如三星、摩托罗拉、HTC、中兴、华为、酷派、魅族等的加入,而其开源的系统框架更是为手机厂商制定有特色的软件、服务提供了方便。

目前的地图服务主要是以单机或者Web的方式实现,不适合身处外地的用户使用,给用户的出行带来了不便。

而手机地图服务的便携性和数据的实时性很好的解决了这一问题,因此,设计手机地图服务的应用具有非常实用的价值[1]。

所以综上所述,研究并设计开发Android手机地图具有很好的市场前景。

1.2 课题目前发展现状
随着社会的发展,人们对地理信息的需求越来越多,从地图服务中人们得到的不仅仅是方便,还有效率和效益。

手机地图服务作为一项高新技术产业,对行业的影响是积极的。

一方面,将位置服务与地图相结合可以提高一些相关行业服务的效率[2]。

例如在安全救援行业,手机地图服务可以通过手机定位,及时获取救援对象的位置,并在地图上标识出来,给救援工作带来了极大的便利。

另一方面,对一些传统行业加以改造,实现其在新环境下的飞跃。

最典型的例子便是物流管理,运用基于手机平台的位置服务,将货物的物理位置在地图上标识出来,并以此为基础,处理物流业务的各个环节,实现了物流业务的电子化。

随着技术的不断发展,手机地图服务将会渗透到更多的行业,但还存在一些限制条件。

比如移动通讯网的覆盖范围,虽然目前我国移动通讯网络的覆盖已经非常广泛,但一些偏
1
齐文龙:基于Android平台的手机地图应用开发
远地区还存在盲区。

对于受众来说,手机终端地图的准确性以及渐变灵活性仍然是所关注的焦点,同时伴随着国内外厂家的不断入驻,近期手机地图市场看点颇多。

相比较国外产品,国产终端下载软件的优势更加明显[3],无论在准确性与实用性来讲,但毕竟选择性因人而异[4]。

从市场总体来看,谷歌、百度、高德仍然占据绝大部分市场份额。

2013 对于国内 GPS 用户来说,从实际导航体验上来看最切身实际的改变,首当其冲我们认为从理想变成现实的当属手机地图的成功普及应用了[5]。

1.3 本文的研究内容与结构安排
本课题主要研究的是在Android平台下基于百度地图API的手机地图,在eclipse的基础上采用Java语言实现了安卓版手机地图的开发,主要包括定位、路线查询、地点检索、酒店、ktv查询等地图基础服务功能。

主要分三大版块来说明。

第一,论述说明了Android的起源、现状及发展趋势,Android的优点等;
第二,论述了本课题采用的一些技术方法和系统实现手段;
第三,在开发过程中遇到的一些问题及解决方法。

2
2013届数字媒体技术专业毕业设计(论文)
2 Android智能手机平台概述
2.1 Android手机平台的优点及特征
Android平台是一种开源的、高自由度的手机操作系统。

“开源”是用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。

“高自由度”是指用户可以根据自己的喜好来设置手机界面,Android的应用市场甚至还有各式各样的启动器来供用户自己选择,让自己的手机与众不同[6]。

2.1.1 Android手机平台的优点
(1)开放性
Android手机平台是Google公司开发的智能手机操作系统,它的开源、开放将允许更多的手机厂商加入,同时其开放的特性将给开发者带来方便。

新的创意的应用将在这个开发的平台不断发光发热。

(2)自由性
摆脱运营商的束缚,让手机能自由接触网络。

(3)兼容性
由于Android的应用程序是基于Java的框架,而Java具有一次编写、到处运行的跨平台的能力。

实现了与硬件无关,降低了开发者的负担。

(4)拓展性
Android底层的各种库文件、驱动文件都是开放的,它允许手机厂商指定特色的辅助功能和服务。

这给Android智能平台带来很好的拓展性。

2.1.2 Android手机平台的特征
Android应用框架具有可重用性、可替代性。

3
齐文龙:基于Android平台的手机地图应用开发
Dalivk虚拟机:Android平台使用的Dalivk虚拟机是Android最核心的部分之一,Google自主开发。

它将Java代码编译成dex类型的数据文件,而后生成APK文件,最后运行。

它保证了API向下的兼容性,同时优化了个资源的处理方式,使运行效率较JAVA虚拟机更高。

优化的图形系统:Android提供了一个遵循OpenGL ES1.0标准的3D 图形库及自定义的2D图形库,它们都被优化过。

OpenGL ES是OpenGL的缩减版,能够实现各种常用的3D建模、处理效果[7]。

网络支持:支持蓝牙通讯、GPRS-EDGE、3G等大带宽传输和WIFI无限网络连接。

硬件支持:支持相机、摄像、GPS、导航以及感应加速器(如重力感应,温度感应)等各种硬件。

开发环境:包括设备模拟器、调试工具(DDMS),内存和性能分析工具以及其他Eclipse IDE相关的开发插件。

2.2 Android系统构架
Android是一个复杂的智能手机操作系统,其系统构架如图2-1所示。

4
图2-1 Android系统框架
(1)应用程序(Applications)
此层是应用程序层,即软件层。

此层包括所有的应用,它通过调用系统的特定API而形成一个具有特定功能的软件。

比如主页、通讯录、电话本、以及浏览器,这些都属于应用程序范畴。

(2)应用框架(Application Framework)
此层是应用程序与虚拟机以及底层库的中间件,应用程序通过调用此层的接口实现对底层的操作,应用框架是Android系统框架最核心的部分之一。

它封装了系列接口供应用程序调用。

(3)系统库(Libraries)
系统库大部分的代码采用C/C+编写,它是系统调用的底层库,文件格式为.so。

由于Java语言无法控制硬件,而在底层运行中,由需要代码效率高的程序库,所以C/C++编写而成的库,大部分在控制着底层硬件以及一些驱动的实现。

(4)Linux内核
Android操作系统采用的是Linux 2.6版本的内核。

在底层内核中,通过编写驱动程序,实现各种功能的驱动。

2.3 Android software development kit(SDK)
Android SDK(Android software development kit)是Google公司针对Android推出的用于手机和移动设备的开发包,是除了手机厂商的专用开发包外唯一的手机模拟器开发包。

他通用性高,开发出的应用程序可以保证能运行在大部分设备上,而不是像专用厂商具有一定的不兼容性。

同时他具有强大的功能和完善的调试手段,提供运行模拟器、DDMS等丰富的组件,是其他IDE需集成采用的必备元素。

目前我们通用的主要有5个版本,分别是android 2.1、2.2、2.3、4.0、4.2。

Android SDK包括各种各样的定制工具,可以帮助开发人员在Android 平台上开发移动应用程序。

其中最重要的工具是Android模拟器和Eclipse 的Andrdoid开发工具插件,同时SDK也包含了各种在模拟器上用于调试、打包和安装的工具。

2.4 关于Eclipse
Android平台为开发者提供了源码开放的软件开发包(SDK),它包含了使用Java语言开发Android平台应用的必要工具和组件(API)。

进行开发前先要建立合适的开发环境,其中基于Java的整合型可扩展平台Eclipse是我们的首选[8]。

(1)搭建Eclipse开发环境
Eclipse的运行建立在JRE之上,因此必须先安装JRE。

可以从
下载JDK5或JDK6,然后按提示进行JDK的安装;安装完成后,再配置环境变量:如在Windows XP或Windows 2000的操作系统中,可右键单击“我的电脑”,然后依次选择“属性”、“高级”、“环境变
量”,在弹出的窗口的“系统变量”中找到“Path”环境变量,点击“编辑”按钮,在弹出的对话框中的“变量值”一栏输入JDK的安装路径即可,最后用同样的方法设置环境变量“Class—path”,至此便完成了JDK的安装。

有了Java运行环境,就可以下载Eclipse ZIP包,解压后就能直接运行Eclipse.exe。

在Eclipse中安装一个名为ADT的Android开发工具插件,就可以使用SDK 进行Android应用开发。

ADT安装步骤:在Eclipse中依次选择
Help>SoftwareUpdates> Find and Install,在弹出的对话框中选择Search for new features to install并点击Next,选择NewRemote Site。

在结果对话框中为远端站点命名,并在URL栏中输入https://dlss1. /android/eclipse/,点击OK,随后ADT站点被添加到搜寻列表中,再点击Finish即可;在搜索结果对话框中选择ADT>Eclipse Integration>Android Development Tools,单击Next,接受协议,点击Next 和Finish;选择Install All,并重启Eclipse,ADT安装完成。

ADT安装完毕后,还要配置Eclipse参数,使其指向SDK根目录,过程如下:在Eclipse中选择Window>Preferences打开参数设置面板,选择Android选项;在SDK路径中填入Android的安装路径,单击Apply和OK,完成参数设置。

至此,就能在Eclipse环境下进行Android应用的开发了。

Java IDE的产品在IDE领域中是最多的,有商业的也有免费开源的。

在本项目中我们选用Eclipse作为开发工具,Eclipse是一个开源代码的、基于Java的可扩展开发平台。

就其本身而言,它只是一个框架和一个服务,用于通过插件组件构建开发环境。

幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Tools,JDT)。

JDT使得Eclipse 在Java开发上有如下一些优点:快速的性能,方便的重构功能,快速修复错误,调整组织导入包,弹出窗口进行代码自动装配等。

3系统设计及相关技术
本章主要阐述离线地图服务系统的需求分析、系统流程和界面设计,并对系统实现过程中用到的关键技术和算法进行介绍说明。

3.1 系统需求分析
离线地图的主要功能是以图片、文字的形式向用户提供地图服务功能,同时它将提供友好、方便的用户界面[9]。

其功能需求包括:
(1)地图操作:能实现对地图进行放大、缩小和移动。

(2)定位操作:此程序能通过底层驱动获取目前用户所在的经纬度,然后根据相关算法,在地图上标注目前用户所在的地理位置。

(3)地点检索:用户只要在检索栏输入自己想知道的地点或者搜索附近的酒店、KTV等场所,都可以在地图上搜索到具体位置。

(4)路线显示:系统实现了两种路线方法,步行和驾车路线,并且路线上都会有导航提示。

3.2 系统总体流程图
系统采用了简单的操作方式和布局方式去完成软件设计。

显示页面主要分为三个页面,进入页面、地图展示缩放页面、菜单页面。

而技术页面有五个页面,其中地图展示缩放页面由两个Activity完成,菜单页面由两个Activity完成。

程序流程图如下图3-1:
图3-1 系统流程图
3.3 系统关键技术
Android是一个优秀的智能手机平台,其提供四个关键的组件供我们开发选择,不同的组件适应不同的开发需求[10]。

Android系统也采用MVC 的架构,整体上,我们可以把代码部分看作是Cntrol,Android的XML布局文件我们大体上可以看成是View。

基于上述的理解,所以开发的关键技术就在于我们如何协调Android提供的各种功能,我们选择XML来进行界面布局。

(1)活动(Activity)是Android中非常重要的概念,选择Activity 是开发的首要步骤。

简单的说就是一个界面就是一个Activity,它有其自己的生命周期。

界面创建时,此活动开始,而当界面关闭或者消失时,此
活动结束其生命周期。

在android.app.Activity类中,Android 定义了一系列与生命周期相关的方法,在我们自己的 Activity 中,只是根据需要复写需要的方法,Java 的多态性会保证我们自己的方法被虚拟机调用,这一点与 J2ME 中的 MIDlet 类似。

以下是Activity的生命周期。

public class OurActivity extends Activity {
protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
}
(2)XML文件在Android不仅是布局文件,同时它也是资源文件。

通常情况下,我们在layout中创建程序的布局;在values目录下的创建资源文件,它的键-值存储的方式为开发提供了快捷的通道。

Java 平台支持通过许多不同的方式来使用 XML,并且大多数与 XML 相关的 Java API 在Android 上得到了完全支持[11]。

3.3.1 Android界面布局
Android系统中,界面布局是一个热门的话题,因为它直接关系到用户的体验。

同时,一个美观、简洁而大方的布局不仅可以提高用户体验,同时又能保证很高的执行效率。

Android生成用户界面有三种方式:XML配置生成、通过用户自己的界面接口生成、直接用代码生成。

第一种界面生成方式应用最为广泛,因为它符合了MVC模型,同时也容易对界面进行修改。

下面具体介绍主要的布局方式[12]:
线性布局(LinearLayout):以单一方向对其中的显示对象进行排列显
示,如以垂直排列显示,则布局管理器中将只有一列;如以水平排列显示,则布局管理其中将只有一行。

同时,还可以对个别的显示对象设置显示比例。

表格布局(TableLayout):表格布局通过行、列的形式来管理UI组件,TablelLayout并不需要明确地声明包含多少行、多少列,而是通过TableRow,以及其他组件来控制表格的行数和列数,TableRow也是容器,因此可以向TableRow里面添加其他组件,没添加一个组件该表格就增加一列。

相对布局(RelativeLayout):允许通过指定系显示对象相对于其他显示对象的父级对象的相对布局来布局。

一个控件的位置它决定于它和其他控件的关系,好处:比较灵活;缺点:掌握比较复杂。

3.3.2 Activity之间的传值
Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent 传递给调用的组件,并完成组件的调用[13]。

因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦,两个Activity直接的传值还直接与Intent的Extra对象有关。

4 系统实现
4.1 地图展示的实现
地图展示是系统最基本的功能。

要开发地图应用首先要下载百度地图Android SDK,并且要申请百度地图的密钥Key。

4.1.1 Android SDK 下载与安装[14]
百度地图的Android SDK包含了丰富的LBS功能:
(1)地图展示:包括2D图、卫星图、3D图地图展示。

(2)地图操作:提供平移、缩放、双指手势操作、底图旋转等地图相关操作。

(3)自定义绘制:提供自定义绘制点、线、面基本几何图形的功能。

(4)百度地图导航:提供调起百度地图Android版(v5.0及以上版本)导航功能。

(5)地图搜索:提供根据关键字进行范围检索、城市检索和周边检索。

且支持LBS云检索用户自有数据。

(6)详情查询:提供餐饮类的POI的详细信息查看(Place详情)。

(7)线路规划:提供公交、驾车和步行三种类型,多种方案(不含地铁、时间优先、最少换乘、最少步行)的线路规划。

(8)地理编码:提供地址信息与坐标之间的相互转换。

(9)位置标注:提供一个或多个POI位置标注,且支持用户自定义图标。

(10)离线地图:提供离线地图功能,可节省用户流量。

(11)定位:采用GPS、WIFI、基站、IP混合定位模式,请使用Android 定位SDK获取定位信息,使用地图SDK定位图层进行位置展示。

百度地图
Android SDK从2.0.0版本开始采用的是矢量版的地图,开发者如果需要使用栅格版的地图数据,请使用1.3.5及之前的版本。

(12)实时路况:提供城市实时交通路况信息图。

安装配置:
第一步:在工程里新建libs文件夹,将开发包里的baidumapapi.jar 拷贝到libs根目录下,将libBMapAppEngine.so拷贝到libs\armeabi目录下,拷贝完成后的工程目录如下图4-1所示;
图4-1 地图包存放位置
第二步:在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi.jar,确定后返回。

这样,这个包就会出现在Libraries中,如图4-2。

图4-2 Path后的地图包
通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。

4.1.2 获取API Key
用户在使用SDK之前需要获取百度地图移动版API Key,该Key与自己的百度账户相关联。

我们必须先有百度帐户,才能获得API Key。

并且,该
Key与我们引用API的程序名称有关。

4.1.3 显示地图
百度地图SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度地图数据:
第一步:创建并配置工程(具体方法参见工程配置部分的介绍);
第二步:在Manifest中添加使用权限及Android版本支持;
常用使用权限如下图4-3所示(开发者可根据自身程序需求,添加所需权限):
图4-3 部分使用权限
添加完“使用权限”后要添加“屏幕支持”并且要对Activity进行配置。

这里百度开发官网上都给出了开发代码,具体就不一一列出。

之后,还要在布局xml文件中添加地图控件,布局文件保存为app_main.xml。

本系统主要采用的是相对布局与线性布局结合的布局方法,使得文本框和按钮的位置更为合理准确。

Android开发最为重要的就是Activity的设计。

这里首先要创建地图的Activity,并且import相关的类。

之后通过初始化Activity,并且将申请的SDK添加到Activity中的代码mBMapMan.init("我的Key", null); 中,最后重写Activity的生命周期函数管理API,这样就可以显示出可以缩放的地图。

地图显示如下:
图4-4 地图显示
4.2 菜单功能的实现
菜单界面如图4-5:
图4-5 Menu截图
此菜单界面需要用户点击 Menu按键才能激活。

菜单中用三个选项:我的位置、路线、退出,点击“路线”还有“步行”和“驾车”两种选择。

当菜单第一次被打开时,系统会复写Activity父类中的onCreateOptionMenu()方法。

重写该方法并生成传递给你的这个菜单对象。

你可以通过扩充定义在XML文件中的一个菜单资源或者通过为你想要的每一个菜单项调用add()方法生成这个菜单。

这个方法增加一个菜单项MenuItem,并返回新创建的对象。

你可以用返回的MenuItem来设置附加属性如图标,快捷键,意图以及这个菜单项的其它设置。

其菜单设计代码为:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
int menuItemId = Menu.FIRST;
MenuItem menu1 = menu.add(1, 1, 1, "我的位置");
menu1.setIcon(R.drawable.mylocation);
MenuItem menu3 = menu.add(1, 3, 1, "路线");
menu3.setIcon(R.drawable.get_incident);
MenuItem menu5 = menu.add(1, 5, 1, "退出");
menu5.setIcon(R.drawable.exitapp);
return true;
}
4.3 定位功能的实现
在Android的定位(Android.location)接口中包含了几个与位置service相关的类,就可以使用这几个服务类来获得Android提供的定向API,同时需要手持移动设备支持GPS模块或者A—GPS。

在使用LocationManager来提供定位服务时不会直接提供使用者的坐标情况,首先需要一个句柄,它可以通过系统提供的getSystemService来获得并实现对它的应用。

当程序拥有了指向LocationManager的句柄服务时,然后就可以使用下列3个功能:1)搜索LocationManager服务所能给的地理位置坐标;2)注销、释放或者获得LocationProvider提供的地理位置信息;3)当手持移动设备进入某一个活动范围以后,可以激活一个Intent来实现下一个功能模块的设定(在用虚拟机进行开发、模拟时并不能够获取位置信息,通常在制作GIS应用时需使用工程机进行开发)。

在Android中实现定位功能,需要知道经纬度就可以定位到相应的地点。

这时在程序中先要构造一个经纬度点,经纬度点的构造方法如下[15]:
GeoPoint(int latitudeE6, int longitudeE6)。

在构建经纬度时需要注意经纬度的取值精度,在Android系统中,要求经度和纬度的精度为小数点后6位,因此在构造经纬度点的时候需要用到“数值*1E6”方式,或者直接将经纬度的精度写全。

效果图如图4-6。

图4-6 定位
定位信息获取的主要技术代码为:
Lotion mylocation = mBaiduMap.getMyLocation();
mBaiduMap.setsearchflag(false);
if(mylocation!=null)
{
mBaiduMap.gotomylocation(mylocation);
}
break;
4.4 路线导航功能的实现
百度地图SDK集成搜索服务包括[16]:位置检索、周边检索、范围检索、公交检索、驾乘检索、步行检索,通过初始化MKSearch类,注册搜索结果
的监听对象MKSearchListener,实现异步搜索服务。

首先自定义MySearchListener实现MKSearchListener接口,通过不同的回调方法,获得搜索结果。

“路线导航”部分的效果图如图4-7所示:
图4-7 路线导航
主要代码如下:
new AlertDialog.Builder(AppMain.this)
.setIcon(R.drawable.alert_dialog_icon)
.setTitle("温馨提醒")
.setView(textEntryView)
.setNegativeButton("驾车", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(AppMain.this, "起点
="+usernameET.getText().toString()+"\n终点
="+passwordET.getText().toString(), Toast.LENGTH_LONG).show();
MKPlanNode stNode = new MKPlanNode();
=
usernameET.getText().toString();
MKPlanNode enNode = new MKPlanNode();
=
passwordET.getText().toString();
mSearch.drivingSearch("西安", stNode, "西安", enNode);
}
})
.setNeutralButton("步行", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(AppMain.this, "起点
="+usernameET.getText().toString()+"\n终点
="+passwordET.getText().toString(), Toast.LENGTH_LONG).show();
MKPlanNode stNode = new MKPlanNode();
=
usernameET.getText().toString();
MKPlanNode enNode = new MKPlanNode();
=
passwordET.getText().toString();
mSearch.walkingSearch("西安", stNode, "西安", enNode);
}
})
.show();
4.5 地点检索功能的实现
这里主要展示“周边检索”。

周边检索指的是以指定坐标点为圆心,根据给定关键字查询一定半径范围内的全部兴趣点[17]。

使用方法:poiSearchNearBy(String key, GeoPoint pt, int radius);比如检索周边5000米之内的KFC餐厅,主要代码如下:。

相关文档
最新文档