查字典论文网 >> 基于Android平台的手机地图服务设计

基于Android平台的手机地图服务设计

小编:

摘 要:随着社会的发展,人们对地理位置信息的需求越来越多。为了获取某个地点的信息,人们常常需要花费不必要的时间和精力,传统的地图服务受时间和地点的限制,同时主要是以通过网页方式或者使用单机的形式来实现,基于Android的手机移动地图开发主要完成了地址搜索、自我定位、周边搜索、收藏夹和位置共享等功能的实现,移动地图在androidsdk模拟器环境上进行了仿真实验,实验结果表明,开发的手机地图具有携带方便、移植性强、加载速度快、占用资源少、性能好等优势,能随时随地满足用户对地理位置信息的需求。

关键词:Android;地理位置信息;移动地图;位置共享

中图分类号:TP399 文献标识码:A

Abstract:With the development of the society, more and more location information in phones are commanded. In order to get the information about a particular place, people often have to spend amounts of unnecessary time and effort. The traditional map service is restricted by time and places. Besides, it mainly achieves its purposes by means of web pages or single host. However, mobile map development of Androidbased phones has mainly realized the functions of address search, selforientation, local search, favorites and location sharing,etc. It is demonstrated in a simulation experiment on the Android-sdk simulator that the development of mobile map has advantages in easy carrying, strong portability, fast loading, low footprint and high performance.And it can meet the requirement of the customers for location information in phones anytime and anywhere.

Key words:Android;location information;mobile map;location sharing

1 引 言

2 同类软件的研究现状和存在的不足

随着社会的发展,人们对地理位置信息的需求越来越多。为了获取某个地点的信息,人们常常需要花费不必要的时间和精力,在现代生活节奏不断加快的今天,随时随地获取地理位置信息正成为人们最渴求的信息之一。传统的地图服务软件主要是通过Web网页方式或者使用J2ME技术实现的,但还存在一些问题,主要表现在以下几个方面:

1)基于Web的开发方式不利于部署和实施,开发的软件能在电脑中运行,但由于电脑相对笨拙性和不便于携带性,因此并不适合在户外、旅游、出差等场合下使用,给用户随时随地获取地理位置信息带来极大的不便。

2)基于Web方式开发的地图服务软件,通常运行在Windows系统平台,稳定性和安全性相对Linux操作系统要差。

3)采用J2ME移动开发技术实现的地图服务软件,只能运行在早期的非智能手机中,该机型相比于智能机存在计算能力差、手机屏幕尺寸小和存储容量小等缺点。

4)J2ME移动开发技术提供的类库相对简单,提供的图形用户界面开发组件较少,开发的软件界面不美观且要求开发的软件限制在64KB以内。

Android是一种基于Linux内核的免费、开放和完全可以定制的手机平台,能为普通开发者提供非常灵活的地图展示与控制功能,开发的地图服务软件能在智能手机中运行并能解决上述问题,开发的系统具有很好的可扩展性、可重用性、移植性和可维护性。

3 Android技术

Android 是Google于2007年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成[5-6],Google将其称为首个为移动终端打造的真正开放和完整的移动软件,目前Android在中国的发展迅速,为了节省研发费用,国内很多的手机厂商和移动运营商纷纷加入到Android阵营,其中包括中国移动、中国联通、华为、联想等大企业。在中国不管是知名的手机生产厂商还是山寨手机厂商,都已经开始生产Android操作系统的手机[7-9]。

4 手机地图的总体设计

4.1 手机地图的功能设计 根据用户的需求分析得出,本文的手机地图服务的主要功能和模块如下所示:

1)搜索

该部分是整个系统的核心模块,包含公交搜索、地址搜索、路线搜索、周边搜索四个子模块。通过该模块,用户可以查询公交、地址、路线以及周边兴趣点信息,查询到的结果可以选择以文字的方式显示在列表上或者在地图上标示出来。

2)自我定位

通过该模块用户可以获取自己目前的位置信息,系统会根据获取到的位置信息在地图上的相应位置添加一个覆盖物以表示用户目前的位置,并且该覆盖物会随着用户位置的移动实时更新。用户可以选择关闭定位服务,以节省手机电量及GPRS流量,在需要时也可以开启该服务。

3)位置共享

该模块包含查看好友位置、管理好友两个子模块。用户需要先注册成功该系统的会员,然后登录该系统才可以使用位置共享服务。用户登录系统后可以将自己目前在位置信息共享给在线的好友,也可以查看到在线好友的位置信息。会员可以查找、添加、删除好友。

4)收藏夹

该模块包含线路收藏和地址收藏两子模块。用户可以将自己感兴趣的地点或者公交线路加入收藏夹,以便快速查看,可以修改或者删除收藏夹中存储的信息。

4.2 数据存储设计

5 手机地图主要功能的详细设计

5.1 主界面的设计

activity_main.xml配置文件为主界面的布局文件,软件刚开始启动时,通过在MainActivity类onCreate()方法中调用setContentView(R.layout.activity_main)方法加载布局文件,解析后显示在屏幕上。将MainActivity类中的launchMode模式设置为singleTop方式,使布局文件在软件退出前只加载一次,提高系统性能。主界面的设计要美观、大方且符合用户操作习惯,将用户常用的操作选择性地且有条理地放置在主界面,设计主界面的效果如图1所示。

5.2 地址搜索的设计

地址搜索的界面提供一个输入框与地图View,因此把该模块包含在主界面中。activity_main.xml文件负责该模块布局工作;MainActivity类负责控件事件绑定与业务流程控制;MainService类负责模块业务逻辑处理;服务器搜索结果数据由SearchListener类异步接收并做处理后发送给MainService类handleMessage方法处理,处理后将其展现在屏幕上。

地址搜索的核心主要涉及到百度地图API中MKSearch类的三个方法,分别是异步函数reverseGeocode(GeoPoint pt),根据地理坐标点获取地址信息,返回结果在MKSearchListener接口的onGetAddrResult方法通知中;异步函数geocode(String strAddr, String city),根据地址名获取地址信息,返回结果在MKSearchListener接口的onGetAddrResult方法通知中;异步函数poiSearchInCity(String city, String key),城市poi检索,返回结果在MKSearchListener接口的onGetPoiResult方法通知中。具体实现效果如图2和图3所示。

5.3 自我定位的设计

自我定位模块的界面提供一个开启/关闭定位服务的按钮以及一个显示我的位置的地图View,因此可以将该模块界面部分融合到主界面中。activity_main.xml文件负责该模块的布局工作;MainActivity类负责控件事件的绑定与业务逻辑流程控制;MainService类负责模块的业务逻辑处理,并在其内部实现LocationListener接口,覆盖onLocationChanged(Location location)方法。LocationOverlay类继承自MyLocationOverlay类覆盖其onLocationChanged方法,当我的位置变化时,更新我的位置在地图上的覆盖物。具体实现效果如图4所示。

5.4 周边搜索的设计

near_search.xml文件负责周边搜索模块的布局工作;NearSearchActivity类负责控件事件的绑定与业务流程的控制;NearSearchService类负责模块的业务逻辑处理;服务器搜索结果数据由SearchListener类异步接收并做简单处理后发送给NearSearchService类的handleMessage方法处理,处理完毕后将以列表的方式显示周边兴趣点信息或者在地图上标示出兴趣点信息。

周边搜索模块的搜索部分的核心主要涉及到百度地图API中MKSearch类的三个方法:异步函数reverseGeocode(GeoPoint pt),根据地理坐标点获取地址信息,返回结果在MKSearchListener里的onGetAddrResult方法通知中;异步函数poiSearchNearBy(String key, GeoPoint pt, int radius),根据中心点、半径与检索词发起周边搜索,返回结果在MKSearchListener里的onGetPoiResult方法通知中。具体实现效果如图5所示。 5.5 收藏夹的设计

fav.xml文件负责周边搜索模块的布局工作;FavActivity类负责控件事件的绑定与业务流程的控制;DBOpenHelper类负责数据库的创建和更新操作;FavService类负责模块的业务逻辑处理;FavDAO类负责数据库操作。AddrInfo、BusLine类分别为数据库中表addr和busline的javabean实体映射。具体实现效果如图6所示。

5.6 位置共享的设计

loc_share.xml文件负责位置共享模块的布局工作;LocalShareActivity类负责控件事件的绑定与业务流程的控制;LocalShareService类负责模块的业务逻辑处理;LoginServlet、RegisterServlet、FriendServlet、LocalShareServlet为服务器端的Servlet,分别与用户登录、注册、管理好友、查看好友位置相关,Servlet接收到用户的请求时调用服务器端的UserService类进行业务逻辑处理,并将处理后的结果返回给用户,需要操作数据库时,UserService会调用UserDAO类对数据库进行相关操作。

6 系统的测试与使用

基于Android平台的手机地图服务软件是采用eclipse+ADT插件开发的,该环境是一个免安装的集成开发环境,系统中所用到的地图及位置数据等均通过调用百度地图Android SDK的应用程序接口来完成,通过在集成后的eclipse开发环境中,点击Run→Run|Android Application选项,会在项目源文件中自动生成一个后缀名为apk的文件,该文件是Android系统的可运行程序。Bmap.apk为移动地图的客户端软件,可以通过拖曳或通过adb install命令将此执行文件安装到智能手机或Android模拟器中,并要求开通GPRS或WIFI服务,能够上网,用数据线与已配置好的电脑连接,即可使用,系统在真实的智能手机和模拟器Android 2.0版本及以上的不同屏幕尺寸中运行良好。

7 结束语

结合移动用户的实际需求,本文采用当前比较流行的Android技术,设计并开发了一个手机地图,该手机地图提供了周边搜索、地址搜索、自我定位、收藏夹和共享位置等服务。开发的手机地图程序能下载到智能手机中,同时也能在android-sdk模拟器环境上运行,测试表明:基于Android的移动地图具有携带方便、移植性强、加载速度快、占用资源少等优势,能随时随地满足用户对地理位置信息的需求。

参考文献

[5] 胡舒鹏.基于Android系统的手机地图探索与实践[J].硅谷,2012,3:188-188.

[7] 刘诚,段红光,巴义.基于Android移动视频监控系统客户端的研究与设计[J].电视技术,2013(4):85-88.

热点推荐

上一篇:基于霍尔效应的微小压强测量装置的设计与实现

下一篇:如何对幼儿进行德育教育论文 幼儿园关于德育教育之类的论文

食堂核算员的职责范围 核酸检测工作方案 开学安全工作会议讲话稿(优秀13篇)