ANDROID平台电子地图加载与实现方案文档格式.docx
- 文档编号:22705196
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:52
- 大小:2.49MB
ANDROID平台电子地图加载与实现方案文档格式.docx
《ANDROID平台电子地图加载与实现方案文档格式.docx》由会员分享,可在线阅读,更多相关《ANDROID平台电子地图加载与实现方案文档格式.docx(52页珍藏版)》请在冰豆网上搜索。
另一方面Baidu于2007年11月推出了一款开源的移动终端软件平台——
BaiduMap,为普通开发者提供了非常灵活的BaiduMap展示与控制功能。
同时,由于BaiduMap的免费性和Android平台的开源性,能够有效降低开发成本,使每个用户自由的获取信息,这也为手机地图服务的普及做出了重要贡献。
本人毕业设计的论题为《基于android系统的电子地图加载与实现》正是基于Android平台开发的,采用的网络地图BaiduMap,该系统可以用来浏览城市的地图,并能对其放大、缩小和移动,同时利用GPS定位技术,实现了自我定位、位置查找和路径跟踪等功能,满足了手机用户基本的地图导航服务需求。
1.3.Android研究现状和发展趋势
据Gartner最新数据显示,2010年第二、三季度全球智能手机销售继续大幅增长,其中第三季度安卓占全球智能手机市场的25.5%,仅次于塞班,成为第二大智能手机系统。
2010第二、三季度与去年同期相比,增度分别是15.4%及22%,增势迅猛。
而塞班系统较09年的市场份额,尽管终端销量有大幅度提升,但增势下滑10%,形势非常严峻。
其他操作系统的表现则要平稳很多。
图1-3-1
安卓是首款开源代码的操作系统,采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改安卓的SDK软件包。
系统的开源性使其具有良好的拓展性,一方面,为众多移动应用开发者提供了良好的系统性平台,有利于移动应用的集合;
另一方面,终端厂商可以针对自身的特殊需要“定制化开发”。
与此相比,尽管2010年2月,塞班基本完成开源工作,但由于代码臃肿,用户界面设
计缺失,塞班的开源并无实际意义,错失发展良机。
据Informa预测,2012年,安卓手机销量将超过诺基亚塞班手机,届时安卓将成为全球最大的智能手机平台。
谷歌表示目前安卓手机每日平均激活量为20万部,销售速度加速上涨。
我们认为,安卓在全球市场的成长壮大,塞班市场份额不断下跌已成不争事实。
安卓操作系统发展迅猛主要得益于免费、开源和良好产业运作策略,这三点为安卓在智能手机市场赢得更多的发展机遇。
系统的免费让更多的厂商加入,推动了份额的上升;
代码的开源让更多的开发者进入应用开发;
应用的丰富吸引了更多用户选择,这也是谷歌值得众多厂商学习的地方。
此外,谷歌通过OHA联合众多厂商进行系统研发,不断更新版本,将系统应用推广到更多的终端产品中,确保用户体验持续改善。
1.4.GIS研究现状
世纪90年代以来,由于计算机技术的不断突破以及其它相关理论和技术的完善,GIS在全球得到了迅速的发展。
在海量数据存储、处理、表达、显示及数据共享技术等方面都取得了显著的成效,其概括起来有以下几个方面:
①硬件系统采用服务器/客户机结构,初步形成了网络化、分布式、多媒体GIS;
②在GIS的设计中,提出了采用“开放的GIS环境”的概念,最终以实现资源共享、数据共享为目标;
③高度重视数据标准化与数据质量的问题,并已形成一些较为可行的数据标准;
④面向对象的数据库管理系统已经问世,正在发展称之为“对象--关系DBMS(数据库管理系统);
⑤以GIS为核心的“3S”技术的逐渐成熟,为资源与环境工作提供了空间数据新的工具和方法;
⑥新的数学理论和工具采用GIS,使其信息识别功能、空间分析功能得以增强等等。
在GIS技术不断发展下,目前GIS的应用已从基础信息管理与规划转向更复杂的区域开发、预测预报,与卫星遥感技术相结合用于全球监测,成为重要的辅助决策工具。
据有关部门估计,目前世界上常用的GIS软件己达400多种国外较著名的GIS软件产品有Auotodesk系列产品、Arc/Info、MapInfo及其构件产品、Intergraph、Microstation等,还有Web环境下矢量地图发布的标准和规范,XML、GML、SVG等等。
我国GIS软件研制起步较晚,比较成熟的测绘软件主要有南方CASS,MapGIS,GeoStar,SuperMap等。
尽管现存的GIS软件很多,但对于它的研究应用,归纳概括起来有二种情况:
一是利用GIS系统处理用户的数据;
二是在GIS的基础上,利用它的开发函数库二次开发用户专用的GIS软件。
目前已成功应用包括资源管理、自动制图、设施管理、城市和区域规划、人口和商业管理、交通运输、石油和天然气、教育、军事等九大类别的一百多个领域。
在美国及发达国家,GIS的应用遍及环境保护、灾害预测、城市规划建设、政府管理等众多领域。
近年来,随着我国经济建设的迅速发展,加速了GIS应用的进程,在城市规划管理、交通运输、测绘、环保、农业等领域发挥重要的作用,取得了良好的经济效益和社会效益。
1.5.移动通信技术与GIS的结合发展
WAP/WML技术作为无线互联网领域的一个热点,已经显示了其巨大的应用前景和市场价值。
WAP柳ML技术与GIS技术的结合产生了移动GIS(Mobile
GIS)应用和无线定位服务LBS(Location——basedServices)。
通过WAR/WML技术,移动用户几乎可以在任何地方、时间获得网络提供的各种服务。
无线定位服务将提供一个机会使GIS突破其传统行业的角色而进人到主流的IT技术领域里。
大多数的分析家都认为,到2010年,无线网络将成为全球数据传送的主要途径。
GIS的未来将会由其机动性所决定。
当前用于地理信息交互的语言还不足以完成真正的“设备无关接口”的互操作。
各种移动设备对于从地理信息服务器所获得的信息,其表现方式是各不相同的,用户输人方式也不相同。
因此,对于不同的移动设备需要一种统一的标记语言。
无线定位服务将提供一个机会使GIS突破其传统行业的角色而进人到主流的IT技术领域里:
第二章系统分析
2.1.研究目标
了解Android应用程序的设计和开发过程;
使用BaiduAPI进行导航软件的开发。
2.2.需求分析
随着信息化建设的飞速发展,人们的需求也不断地提高,对导航系统的需求也在持续增加。
与此同时,iOS、Android、WindowMobile等智能手机系统的发展,使手机已不再只有简单的通讯功能,其强大的可扩展性为用户提供了用手机进行各类娱乐活动、完成各项工作任务的可能,导航软件也成为智能手机的标准配备。
再加上智能手机也已经成为了人们生活的一部分,能在手机端实现一款导航软件将会给出行或旅游的朋友们带来诸多的方便。
从上面的描述中可以基本了解软件的功能需求:
启动AppWidget应用程序,登录系统;
地图界面:
可查看的地图信息、平移、缩放、查看当前用户位置;
模糊查询:
根据用户输入信息查询目的地,视野平移到目的地;
周边查询:
根据城市信息在一定范围内查询并显示若干的目的地;
路况信息:
显示当前的交通状况;
卫星云图:
通过卫星影像查看目的地真实场景;
2.3.性能分析
1)操作简单、界面大方美观;
2)程序响应速迅速、安全性高、信息处理速度快;
3)地图信息详细、准确,并且支持离线地图;
第三章系统开发和运行环境
3.1.Android开发环境介绍
Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。
只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的JavaSDK(其中包括JRE:
JavaRuntimeEnvironment)。
此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。
同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。
简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发:
WindowsXP32位操作系统;
JavaJDK1.6;
Eclipse3.8;
AndroidSDK;
ADT。
BaiduMapAPIforAndroidv2.1.1;
3.2.Android开发平台搭建
Android开发平台搭建步骤:
①首先到http:
//www.eclipse.org/downloads/下载Eclipse集成开发环境并且解压,这里推荐下载JavaEE集成版本,可以为平台的搭建省下不少工作。
接着再去站点下载SDK后安装,下载SDK1.5后解压。
第一步下载工序就结束了。
②双击Eclipse解压后目录中的eclipse.exe然后启动,选择Eclipse菜单中的Help->
InstallNewSoftware->
选项卡上的AvailableSoftware,点击右侧的“Add”输入http:
//dl-
在“Workwith”下拉菜单中选择刚才输入的网址。
过一会就会出现一个DeveloperTools选项,勾上以后点击Next以后Eclipse会自动网上查找Android开发工具插件,然后找到AndroidDDMS和AndroidDevelopmentTools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse。
③重启后选择Eclipse菜单中的Windows->
Preferences在左侧的Android项目中SDKLocation中填入AndroidSDK解压后的目录,然后点击Apply。
④在WindowsXP的系统变量中的path变量中添加一个值,该值指向解压后的AndroidSDK目录下的tools文件夹。
3.3.BaiduMapSDK介绍
XX地图AndroidSDK是一套基于Android1.5及以上版本设备的地图开发工具。
您可以使用该套SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问XX地图服务和数据,构建功能丰富、交互性强的地图类应用程序。
XX地图AndroidSDK提供的所有服务是免费的,接口使用无次数限制。
图3-3-1
BaiduMapSDK功能介绍:
地图展示:
包括2D图、卫星图、3D图地图展示。
地图操作:
提供平移、缩放、双指手势操作、底图旋转等地图相关操作。
自定义绘制:
提供自定义绘制点、线、面基本几何图形的功能。
XX地图导航:
提供调起XX地图Android版(v5.0及以上版本)导航功
能。
地图搜索:
提供根据关键字进行范围检索、城市检索和周边检索。
且支持LBS云检索用户自有数据。
详情查询:
提供餐饮类的POI的详细信息查看(Place详情)。
线路规划:
提供公交、驾车和步行三种类型,多种方案(不含地铁、时间优先、最少换乘、最少步行)的线路规划。
地理编码:
提供地址信息与坐标之间的相互转换。
位置标注:
提供一个或多个POI位置标注,且支持用户自定义图标。
实时路况:
提供城市实时交通路况信息图。
离线地图:
提供离线地图功能,可节省用户流量。
定位:
采用GPS、WIFI、基站、IP混合定位模式,请使用Android定位SDK获取定位信息,使用地图SDK定位图层进行位置展示。
3.4.BaiduMap开发环境集成
开发工具
Android开发工具有很多,开发者可根据自己的喜好进行选择。
XX推荐开发者使用Eclipse作为自己的开发工具。
工程配置
首先:
在工程里新建libs文件夹,将开发包里baidumapapi_v2_1_1.jar拷贝到libs根目录下,将libapp_BaiduMapApplib_v2_1_1.so和libvi_voslib.so拷贝到libs\armeabi目录下(官网demo里已有这三个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;
注:
liblocSDK3.so和locSDK_3.1.jar为XX定位SDK所使用资源,开发者可根据实际需求自行添加。
图3-4-1
然后:
在工程属性->
JavaBuildPath->
Libraries中选择“AddExternalJARs”,选定baidumapapi_v2_1_1.jar,确定后返回。
通过以上两步操作后,您就可以正常使用XX地图SDK为您提供的全部功能了,但是想要访问数据,使用BaiduMapAPI的控件还需在Manifest中添加使用权限及Android版本支持:
<
!
--使用网络功能所需权限-->
uses-permissionandroid:
name="
android.permission.ACCESS_NETWORK_STATE"
>
/uses-permission>
android.permission.INTERNET"
android.permission.ACCESS_WIFI_STATE"
android.permission.CHANGE_WIFI_STATE"
--SDK离线地图和cache功能需要读写外部存储器-->
android.permission.WRITE_EXTERNAL_STORAGE"
--获取设置信息和详情页直接拨打电话需要以下权限
-->
android.permission.READ_PHONE_STATE"
android.permission.CALL_PHONE"
--使用定位功能所需权限,demo已集成XX定位SDK,不使用定位功能可去掉以下6项-->
android.permission.ACCESS_FINE_LOCATION"
permissionandroid:
android.permission.BAIDU_LOCATION_SERVICE"
/permission>
android.permission.ACCESS_COARSE_LOCATION"
android.permission.ACCES_MOCK_LOCATION"
android.permission.ACCESS_GPS"
/>
添加屏幕及版本支持:
supports-screensandroid:
largeScreens="
true"
android:
normalScreens="
smallScreens="
resizeable="
anyDensity="
uses-sdkandroid:
minSdkVersion="
7"
/uses-sdk>
com.baidu.mapapi.map.MapView控件就是地图显示控件:
在地图显示的Activity添加以下代码:
com.baidu.mapapi.map.MapView
id="
@+id/bmapsView"
layout_width="
fill_parent"
layout_height="
clickable="
/>
在使用BaiduMapSDK是还有一个类比较重要—BMapManager,BMapManager需要一个密钥,密钥可以通过
BMapManagermBMapMan=null;
MapViewmMapView=null;
获得密钥后在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”:
super.onCreate(savedInstanceState);
mBMapMan=newBMapManager(getApplication());
mBMapMan.init("
我的Key"
null);
//注意:
请在试用setContentView前初始化BMapManager对象,否则会报错
setContentView(R.layout.activity_main);
mMapView=(MapView)findViewById(R.id.bmapsView);
mMapView.setBuiltInZoomControls(true);
//设置启用内置的缩放控件
MapControllermMapController=mMapView.getController();
//得到mMapView的控制权,可以用它控制和驱动平移和缩放
GeoPointpoint=newGeoPoint((int)(39.915*1E6),(int)(116.404*1E6));
//用给定的经纬度构造一个GeoPoint,单位是微度(度*1E6)
mMapController.setCenter(point);
//设置地图中心点
mMapController.setZoom(12);
//设置地图zoom级别
重写以下方法,以便BaiduMapSDK自行管理释放地图资源:
@Override
protectedvoidonDestroy(){
mMapView.destroy();
if(mBMapMan!
=null){
mBMapMan.destroy();
mBMapMan=null;
}
super.onDestroy();
protectedvoidonPause(){
mMapView.onPause();
mBMapMan.stop();
super.onPause();
protectedvoidonResume(){
mMapView.onResume();
mBMapMan.start();
super.onResume();
至此BaiduMapSDK的开发环境搭建已经基本完成,但要使用定位功能还需要到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ANDROID 平台 电子地图 加载 实现 方案