Android平台下基于百度地图API的地图导航设计
基于Android平台下基于百度地图API的地图导航设计毕业论文
本科毕业论文(设计)题目Android平台下基于百度地图API的地图导航设计专业电子信息科学与技术作者姓名刘茂强学号**********单位物理科学与信息工程学院指导教师郎丰法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)摘要在近年来移动设备智能化、轻便化的趋势下,地图导航已经成为人们出行必不可少的工具,给人们的生活带来了极大的便利。
基于Android的地图课程设计
基于Android的地图课程设计一、课程目标知识目标:1. 学生能理解并掌握Android平台上地图开发的基本概念和原理。
2. 学生能掌握在Android应用中集成地图服务的步骤和方法。
3. 学生能了解并使用地理编码和逆地理编码功能,实现位置信息的转换。
技能目标:1. 学生能够独立完成在Android项目中添加地图功能,并进行地图的显示、缩放、定位等操作。
2. 学生能够利用地图API实现位置搜索、路径规划等功能。
3. 学生能够通过编程解决地图应用中可能遇到的问题,具备一定的调试和优化能力。
情感态度价值观目标:1. 学生能够认识到地图服务在现实生活中的广泛应用和价值,增强对地理信息科学的兴趣。
2. 学生在团队协作中,培养沟通、合作、分享的意识和能力。
3. 学生在学习过程中,培养勇于探索、积极创新的精神,提高问题解决能力。
课程性质:本课程为实践性较强的课程,要求学生在掌握理论知识的基础上,注重动手实践,培养实际操作能力。
学生特点:本课程面向高年级学生,他们已经具备一定的编程基础和Android 开发能力,对新鲜事物充满好奇。
教学要求:结合学生特点,课程以项目为导向,注重理论与实践相结合,培养学生的实际操作能力和创新能力。
教学过程中,注重引导学生主动探索,激发学生的学习兴趣,提高教学效果。
通过本课程的学习,使学生能够独立完成基于Android的地图应用开发,为未来从事相关领域工作奠定基础。
二、教学内容1. 地图开发基础理论:- 地图坐标系与地图瓦片原理- 地图API简介及使用方法2. Android地图集成:- 在Android项目中添加地图功能- 地图的显示、缩放、定位等基本操作- 地图API的调用及使用3. 地理编码与逆地理编码:- 地址与坐标的相互转换- 实现位置信息查询与展示4. 高级地图功能:- 路径规划与导航- 位置搜索与周边信息查询- 地图标注与信息窗口5. 项目实践:- 结合实际案例,完成一个具备地图显示、搜索、路径规划等功能的Android 应用- 教学内容的安排和进度按照以下顺序进行:a. 地图开发基础理论(1课时)b. Android地图集成(2课时)c. 地理编码与逆地理编码(1课时)d. 高级地图功能(2课时)e. 项目实践(3课时)本教学内容参考教材相关章节,确保科学性和系统性。
基于百度地图API的主动定位研究与实现
<script type=“text/javascript” src=“http:///map/jsdemo/demo/convertor.js”> </script> <script type=“text/javascript”src=“http:///api?v=1.4”> </script&g 1.4 版本.
· 67 ·
4 为团友.导游在 2:25 的位置,位于园内月鉴湖西北处,如图 4 我的位置.导游查看团友 1332 位 置,勾上提醒,点击查找,查得 1332 位于园内入公园牌坊处,并查看到该团友拍摄的实景图,如图 5、图 6.这时团友 1332 手机提醒音乐响起.导游又输入 133*,查得 1332,1333,1334 号团友的实时 位置,如图 7.这种体验,让导游对团友定位了如指掌,在该次带团活动中获得良好体验.
· 69 ·
mp.addControl (new BMap.MapTypeControl ());//添加显示模式 mp.centerAndZoom (new BMap.Point (116.728650288,23.3839084533),16); //预定位,设定显示比例级为 16 级
百度地图定位开发——Android地图sdk开发
百度地图定位开发——Android地图sdk开发百度地图Android定位SDK是为Android移动端应⽤提供的⼀套简单易⽤的定位服务接⼝,专注于为⼴⼤开发者提供最好的综合定位服务。
通过使⽤百度定位SDK,开发者可以轻松为应⽤程序实现智能、精准、⾼效的定位功能。
打开百度地图sdk开发,输⼊应⽤名称这⾥需要输⼊SHA1,具体寻找SHA1过程可以参考官⽅的⽂档创建成功后,下载官⽅的jar包,将解压后的所有⽂件添加到申请AK时使⽤的项⽬⽂件中的lib⽬录中。
然后在app⽬录下的build.gradle⽂件中android块中配置sourceSets标签,内容如下:sourceSets {main {jniLibs.srcDir 'libs'}}此时就能将部分⽬录添加到项⽬视图中,现在需要将jar⽂件添加到项⽬视图中。
在app⽬录的build.gradle的dependencies块中添加以下代码,然后右键⽬标jar⽂件,选择Add as library,就能将其加⼊到项⽬视图中。
implementation files('libs\\BaiduLBS_Android.jar')然后打开AndroidManifest.xml⽂件,在<application>中加⼊如下代码配置开发密钥AK,并且根据官⽅⽂档,添加权限显⽰地图我们在xml⽂件的代码中直接输⼊<com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapView"android:layout_width="411dp"android:layout_height="662dp"android:clickable="true"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"tools:ignore="MissingClass" />然后我们需要初始化地图,创建⼀个activitypackage com.example.zty_map;import androidx.appcompat.app.AppCompatActivity;import android.app.Application;import android.os.Bundle;import com.baidu.mapapi.CoordType;import com.baidu.mapapi.SDKInitializer;public class MAPZTY1 extends Application {@Overridepublic void onCreate() {super.onCreate();//在使⽤SDK各组件之前初始化context信息,传⼊ApplicationContextSDKInitializer.initialize(this);//⾃4.3.0起,百度地图SDK所有接⼝均⽀持百度坐标和国测局坐标,⽤此⽅法设置您使⽤的坐标类型. //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
百度地图导航Demo详细文档
百度地图导航Demo1). 开发环境配置:在新建的Android工程下的libs文件夹内添加百度导航SDK 的jar包:galaxy_mini.jar,android_api_1.1_forsdk.jar,BaiduLBS_Android.jar;在libs文件夹下新建armeabi文件夹,并导入下载相关的.so包:libapp_BaiduNaviApplib_v1_0_0.so,libCNPackage.so,libejTTS.so,liblocnaviSDK.so。
(这是下载带有TTS的)BaiduMapNaviSDK.rar资源包:2). 在Android工程的Manifest.xml文件中的配置:a. 在<application>标签下添加2个标签:<service>、<meta-data>:<meta-data android:name = "com.baidu.lbsapi.API_KEY"android:value = "您为这个Android工程申请的百度地图key"/> <service android:name = "com.baidu.navi.location.f"android:enable = "true" />b. 添加使用百度导航sdk的权限:<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><uses-permissionandroid:name="android.permission.BAIDU_LOCATION_SERVICE"/><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCES_MOCK_LOCATION"/> <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permissionandroid:name="uncher.permission.READ_SETTINGS"/><uses-permission android:name="android.permission.WAKE_LOCK"/><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_GPS"/><uses-permission android:name="android.permission.GET_TASKS"/><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.BROADCAST_STICKY"/><uses-permission android:name="android.permission.WRITE_SETTINGS"/><uses-permissionandroid:name="android.permission.PROCESS_OUTGOING_CALLS"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><uses-permission android:name="android.permission.RECORD_AUDIO"/>3). 代码实现部分:a. 在app入口Activity(第一个Activity)中初始化导航引擎:public calss MainActivity extends ACtivity{private boolean mIsEngineInitSuccess = false;private NaviEngineInitListener mListener = newNaviEngineInitListener(){ @Overridepublic void engineInitFail(){}@Overridepublic void engineInitStart(){}@Overridepublic void engineInitSuccess(){mIsEngineInitSuccess = true;} };private String getSdcardDir(){if(Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)){return Environment.getExternalStorageDirectory().toString();}return null;}@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.activity_main);//初始化导航引擎2种方法//第一种:末尾参数为nullBaiduNaviManager.getInstance().initEngine(this,getSdcardDir(), mListener, null);//第二种:末尾参数不为nullBaiduNaviManager.getInstance().initEngine(this,getSdcardDir(), mListener, new LBSAuthManager(){ @Overridepublic void onAuthResult(int status, String msg){String str = null;if(status == 0) str ="key校验成功";else str = "key校验成功" + msg;Log.v("KEY_STATUS", str);}});//前往导航页的buttonButton naviPageBtn = (Button)findViewById(R.id.navi_page);naviPageBtn.setOnClickListener(new OnClickListener(){ @Overridepublic void onClick(View v){Intent intent = new Intent(MainActivity.this,RouteGuideDemoActivity.class);startActivity(intent);}});}}b. activty_main.xml文件的内容:<LinearLayout xmlns:android ="/apk/res/android"android:layout_width = "fill_parent"android:layout_height = "fill_parent"android:orientation = "vertical"><Button android:id = "@+id/navi_page"android:layout_width = "fill_parent"android:layout_height = "fill_parent"android:text = "前往导航页" /></LinearLayout>c. 配置导航结果显示页:具体方法步骤:右键你的工程包->New->Class->填写class名字(下面的有一个Superclass属性填写为android.app.Activity).如下图:PS:此页不需要配置.xml文件在Manifest.xml文件的<application>标签下加入导航显示的声明<activity android:name =".BNavigatorActivity"android:configChanges ="orientation|screenSize|keyboard|keyboardHidden"/>BNavigatorActivity.class文件:public class BNavigatorActivity extends Activity{private IBnavigatorListener mListener = new IBnavigatorListener(){ @Overridepublic void ontifyGPSStatusData(int arg0){}@Overridepublic void ontifyLocateData(LocData arg0){}@Overridepublic void ontifyNmeaData(String arg0){}@Overridepublic void ontifySensorData(SensorData arg0){}@Overridepublic void ontifyStartNav(){BaiduNaviManager.getInstance().dismissWaitProgressDialog();}@Overridepublic void ontifyViewModeChanged(int arg0){}@Overridepublic void onPageJump(int times, Object arg0){//页面跳转回调if(IBNavigatorListener.PAGE_JUMP_WHEN_GUIDE_END == times)finish();else if(IBNavigatorListener.PAGE_JUMP_WHEN_ROUTE_PLAN_FAIL ==times) finish();}@Overridepublic void onYawingRequestStart(){}@Overridepublic void onYawingRequestSuccess(){}};@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);//创建NMapViewMapGLSurfaceView nMapView = BaiduNaviManager.getInstance().createNMapView(getApplicationContext());//创建导航视图View navigatorView = BNavigator.getInstance().init(this,getIntent().getExtras(), nMapView);//填充视图setContentView(navigatorView);BNavigator.getInstance().setListener(mListener);BNavigator.getInstance().startNav();//初始化TTS,可以使用非百度导航sdk提供的ttsBNTTSPlayer.initPlayer();//设置TTS播放回调BNavigatorTTSPlayer.setTTSPlayerListener(newIBNTTSPlayerLister(){ @Overridepublic int playTTSText(String str, int arg){return BNTTSPlayer.playTTSText(str, arg);}@Overridepublic void phoneHangUp(){}@Overridepublic void phoneCalling(){}@Overridepublic int getTTSState() {return BNTTSPlayer. getTTSState(); } });BNRoutePlanner.getInstance().setObserver(new RoutePlanObserver(this, new iJumpToDownloadListener(){@Overridepublic void onJumpToDownloadOfflineData(){}}));}//重写管理api:onPause(), onResume, onDestroy(), onBackPressed()@Overridepublic void onResume(){BNavigator.getInstance().resume();super.onResume();BNMapController.getInstance().onResume();}@Overridepublic void onResume(){BNavigator.getInstance().pause();super.onPause();BNMapController.getInstance().onPause();}@Overridepublic void onDestroy(){BNavigator.destroy();BNRoutePlanner.getInstance().setObserver(null);super. onDestroy ();}@Overridepublic void onBackPressed(){BNavigator.getInstance().onBackPressed ();}}d. 发起导航页的Activity(RouteGuideDemoActivity).xml文件:<LinearLayout xmlns:android ="/apk/res/android"android:layout_width = "fill_parent"android:layout_height = "fill_parent"android:orientation = "vertical"><Button android:id = "@+id/start_btn"android:layout_width = "wrap_content"android:layout_height = "wrap_content"android:text = "一键导航" /></LinearLayout>.classpublic class RouteGuideDemoActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.activity_route_guide_demo);Button startBtn = (Button)findViewById(R.id.start_btn);startBtn.setOnClickListener(new SelfBtnClickListener());}private class SelfBtnClickListener implements OnClickListener(){ @Overridepublic void onClick(View v){switch(v.getId()){case R.id.start_btn:selfLaunchNavigator();break;default:break;}}}private void selfLaunchNavigator(){BaiduNaviManager.getInstance().launchNavigator(this,40.06803, 116.30142, "百度大厦", //起始点39.90882, 116.39750, "天安门", //终点RoutePlan_Mode.ROUTE_PLAN_MODE_MIN_TIME, //算路方式true, //真实导航(true or false)BaiduNaviManager.STRATEGY_FORCE_ONLINE_FRIORIT, //在离线策略new OnStartNavigationListener(){ //跳转监听@Overridepublic void onJumpToNavigator(Bundle bundle){Intent intent = new Intent(RouteGuideDemoActivity.this,BNavigatorActivity.class);intent.putExtras(bundle);startActivity(intent);}@Overridepublic void onJumpToDownloader(){}});}}。
记录开发基于百度地图API实现在地图上绘制轨迹并拾取轨迹对应经纬度的工具说明
记录开发基于百度地图API实现在地图上绘制轨迹并拾取轨迹对应经纬度的⼯具说明前⾔: 最近⼀直在做数据可视化⽅⾯的⼯作,其中平⾯可视化没什么难度,毕竟已经有很多成熟的可供使⽤的框架,⽐如百度的echart.js,highcharts.js等。
还有就是3D可视化了,整体来说难度也还好,通过WEBGL技术⼀般的可视化效果还是很好实现,如果对于WEBGL光线渲染⼒不从⼼的话直接通过three.js来做也是很⽅便。
其实真正困扰我开发的是可视化项⽬中⼀般会存在很多基于地图⽅⾯的开发⼯作,只要是涉及到地图的可视化必然会跟经纬度相关联。
如果是单纯获取地图上某个特定城市或者特定点的经纬度这个很好实现,通过便可以很⽅便的获取到,但是这个系统只能是获取单个点的经纬度,并不能根据地图上的特定轨迹来拾取轨迹对应的经纬度信息。
因为在实际开发过程中,地图可视化项⽬最多的还是在地图上绘制轨迹的需求。
举个实际⼯作中遇到的需求,需要在某城市的地图上绘制出该城市所有地铁线路图,并且在对应站点展⽰⾼峰流量。
这个需求中特定站点的绘制相对简单,可以通过上述讲的百度地图经纬度拾取系统来获取,但是对应的地铁轨迹的经纬度信息获取就蛋疼了,在⽹上查询了好久都没能够查询到(可以肯定的是⽹上肯定有,但是我就是查不到)。
针对上⾯所讲的困惑,我就有了想⾃⼰制作⼀个⼯具的想法,这个⼯具可以根据⽤户在地图上绘制的轨迹对应的将轨迹的经纬度信息保存并提供给⽤户,先不说这个想法是否能够帮助到其他⼈,⾄少能够满⾜我⼯作的需求。
⼯具原理说明: 1 ⽤户在⼯具集成地图上绘制轨迹(点轨迹,圆轨迹,线轨迹,多边形轨迹,四边形轨迹); 2 ⼯具内部调⽤集成地图API获取绘制轨迹的经纬度信息; 3 将集成地图API返回的经纬度信息展⽰在⼯具对应的位置中,每次绘制玩⼀个轨迹就⽣成⼀条经纬度信息; 4 ⽤户通过⼯具提供的查看轨迹详情按钮可以查看经纬度信息并且可以直接复制到⾃⼰项⽬中使⽤; 5 为了满⾜项⽬中⼀个需求包含多个轨迹的可能性,因此增加了⼀个合并轨迹经纬度信息的功能。
百度推出手机地图Android SDK基础地图服务平台全线升级
百度推出手机地图Android SDK基础地图服务平台全线升级闻发
【期刊名称】《中国测绘》
【年(卷),期】2011(000)003
【摘要】记者日前获悉,百度地图API 1.2版本发布.同时推出移动版API服务,支持Android手机地图SDK.百度基础地图服务平台全线升级。
广大位置应用开发者将能够利用其强大的平台支持,为网民提供更丰富.多元.个性的地图应用服务。
【总页数】1页(P87-87)
【作者】闻发
【作者单位】不详
【正文语种】中文
【中图分类】TP311.13
【相关文献】
1.浅谈手机地图产品未来发展方向--基于高德地图和百度地图 [J], 麦世昌;谢小燕
2.基于百度地图API和Android的手机端校园消息发布系统设计与实现——以南
京晓庄学院为例 [J], 陈玲
3.基于百度地图API的智能停车SDK的设计与实现 [J], 邱龙龙;牛强;陈云飞;张军
4.手机地图在"地图的阅读"探研教学中的运用
——以百度地图APP为例 [J], 吴孟宇;贺志康
5.基于百度地图SDK的代驾平台LBS实时监测系统 [J], 任健
因版权原因,仅展示原文概要,查看原文内容请购买。
ANDROID地图SDK
一、Android地图SDK概述1.Android 地图SDK v3.7.3百度地图Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口。
您可以使用该套SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。
2.功能介绍1)地图(1)地图展示包括:普通地图(2D,3D)、卫星图和实时交通图(2)地图操作:可通过接口或手势控制来实现地图的点击、双击、长按、缩放、旋转、改变视角等操作。
2)POI检索(1)周边检索:以某一点为中心,指定距离为半径,根据用户输入的关键词进行POI检索;(2)区域检索:在指定矩形区域内、根据关键词进行POI检索;(3)城市内检索:在某一城市内,根据用户输入的关键字进行POI检索;(4)POI详情检索:根据POI的ID信息,检索该兴趣点的详情。
3)地理编码(1)正向地理编码:实现了将中文地址或地名描述转换为地球表面上相应位置的功能;(2)反向地理编码:将地球表面的地址坐标转换为标准地址的过程。
4)线路规划(1)公交信息查询:可对公交详细信息进行查询;(2)公交换乘查询:根据起、终点,查询策略,进行线路规划方案;(3)驾车线路规划:提供不同策略,规划驾车路线;(支持设置途经点)(4)步行路径检索:支持步行路径的规划。
(5)骑行路径检索:支持跨城骑行路径规划。
5)地图覆盖物百度地图SDK支持多种地图覆盖物,帮助您展示更丰富的地图。
目前所支持的地图覆盖物有:定位图层、地图标注(Marker)、几何图形(点、折线、弧线、多边形等)、地形图图层、POI检索结果覆盖物、线路规划结果覆盖物、热力图图层、瓦片图层等。
6)定位采用GPS、WIFI、基站、IP混合定位模式,请使用Android定位SDK获取定位信息,使用地图SDK定位图层进行位置展示。
7)离线地图用户可以通过SDK在线下载离线包接口,下载离线地图包,使用离线地图可节省用户流量,提供更好的地图展示效果。
android使用百度地图、定位SDK实现地图和定位功能!(最新、可用+吐槽)
android使用百度地图、定位SDK实现地图和定位功能!(最新、可用+吐槽)2013-10-11 07:57:05 我来说两句作者:ab6326795一、吐槽在百度地图看了几个小时的教程,发现种种问题,很大部分是百度对于定位API 网页上的DEMO代码一大堆错误!这极可能是定位SDK升级后而网页上的DEMO部分代码沿用旧版导致的。
错误1:在该示例中取了个变量叫mLocationClient,后面居然叫mLocClient,我找了半天,说这变量哪来的呢错误2:这个错误是最致命的,在网页上的DEMO(开发指南)里居然连开始定位这个函数至始至终都没调用过!!!新手咋看以为调用这个就可以定位了,擦,其实还应该调用mLocClient.start(); 才行,否则压根就没启动定位。
二、使用百度地图V2.2和定位V4.0实现地图和定位功能1、首先将必要的库文件导入到你的项目里,具体参看这里/map/sdkandev-2.htm/map/geosdk-android-developv4.0.htm2、编写代码(MainActivity.java)package com.android.test;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.map.LocationData;import com.baidu.mapapi.map.MapController;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MyLocationOverlay;import api.basestruct.GeoPoint;public class MainActivity extends Activity {//百度Keyprivate static final String BD_KEY="请在这里输入你的百度地图Key,这里我删除了我自己的,你自己填";//地图管理器private BMapManager mBMapMan=null;//地图视图private MapView mMapView=null;private LocationClient mLocationClient=null;//我的位置覆盖物private MyLocationOverlay myOverlay;//位置在图层中的索引private int myOverlayIndex=0;//是否定位到我的位置private boolean bmyLocal=true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mBMapMan=new BMapManager(getApplication());mBMapMan.init(BD_KEY, null);setContentView(yout.activity_main);//注意:请在试用setContentView前初始化BMapManager对象,否则会报错setContentView(yout.activity_main);mMapView=(MapView)findViewById(R.id.bmapsView);mMapView.setBuiltInZoomControls(true);//设置启用内置的缩放控件MapController mMapController=mMapView.getController();// 得到mMapView的控制权,可以用它控制和驱动平移和缩放GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));//用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6) mMapController.setCenter(point);//设置地图中心点mMapController.setZoom(12);//设置地图zoom级别////////////////////////定位功能代码开始mLocationClient=new LocationClient(this);mLocationClient.setAK(BD_KEY);myOverlay=new MyLocationOverlay(mMapView);LocationClientOption option=new LocationClientOption();option.setOpenGps(true);option.setAddrType("all");//返回的定位结果包含地址信息option.setCoorType("bd09ll");//返回的定位结果是百度经纬度,默认值gcj02//当不设此项,或者所设的整数值小于1000(ms)时,采用一次定位模式。
android 百度地图画线路
已知一组点的位置,将这些点在地图上连成一条线。
(参考api)gPoints = new ArrayList<GeoPoint>();// 测试数据// 故宫左上角GeoPoint geoPoint1 = new GeoPoint( ( int )( 39.929 * 1E6 ), (int )( 116.397 * 1E6 ) );// 故宫右下角GeoPoint geoPoint2 = new GeoPoint( ( int )( 39.920 * 1E6 ), (int )( 116.408 * 1E6 ) );GeoPointpalaceCenter = new GeoPoint( ( int )( 39.924 * 1E6), ( int )( 116.403 * 1E6 ) );GeoPoint geoPoint11 = new GeoPoint( ( int )( 39.929 * 1E6 ),( int )( 116.403 * 1E6 ) );GeoPoint geoPoint22 = new GeoPoint( ( int )( 39.920 * 1E6 ),( int )( 116.403 * 1E6 ) );gPoints.add( geoPoint1 );gPoints.add( geoPoint11 );gPoints.add(palaceCenter );gPoints.add( geoPoint2 );gPoints.add( geoPoint22 );// 创建一个覆盖故宫范围的距形Geometry palaceGeometry = new Geometry();// GeoPoint[] gp =// { geoPoint1,geoPoint11,palaceCenter,geoPoint2,geoPoint22 };GeoPoint[] gp =( GeoPoint[] )gPoints.toArray( new GeoPoint[ gPoints.size() ] );palaceGeometry.setPolyLine(gp );// palaceGeometry.setEnvelope(geoPoint1, geoPoint2);Symbol palaceSymbol = new Symbol();// 创建样式Symbol.ColorpalaceColor = palaceSymbol.new Color();// 创建颜色palaceColor.red = 0;// 设置颜色的红色分量palaceColor.green = 0;// 设置颜色的绿色分量palaceColor.blue = 255;// 设置颜色的蓝色分量palaceColor.alpha = 126;// 设置颜色的alpha值// 创建一个边框对象// 参数 - 5:边框的线宽// 参数 - polygonSymbol.new Color(0xffff0000):边框的颜色palaceSymbol.setSurface( palaceColor, 0, 3 );// 设置样式参数,颜色:palaceColor是否填充距形:是线// 创建故宫的Graphic对象Graphic palaceGraphic = new Graphic(palaceGeometry, palaceSymbol );/*** 创建一个GraphicsOverlay来装载故宫的Graphic* 构造参数mMapView为MapView对象,如果不知道如何生成MapView对象,可参看Hello World章节。
基于百度地图的多点导航系统实现
第39卷第6期辽宁工业大学学报(自然科学版)V ol.39, No.6 2019年12月Journal of Liaoning University of Technology(Natural Science Edition)Dec. 2019收稿日期:2019-06-10作者简介:刘丹(1987-),女,江苏淮安人,讲师,硕士。
优先出版地址:/kcms/detail/21.1567.T.20191115.1346.008.html DOI:10.15916/j.issn1674-3261.2019.06.003基于百度地图的多点导航系统实现刘 丹(江苏联合职业技术学院苏州工业园区分院,江苏苏州215123)摘 要:提供了基于百度地图的多点导航系统的设计和实现方案,重点阐述了地图显示、实时定位、地理编码和多点导航功能的实现。
系统采用了安卓系统和百度地图API开发实现,可以满足用户设置多个途经点的导航需求,定制更多个性化的导航路线。
关键词:Android;百度地图;定位;地理编码;导航中图分类号:TP319 文献标识码:A文章编号:1674-3261(2019)06-0359-04Research on Multi-point Navigation Based on Baidu MapLIU Dan(Suzhou Industrial Park Branch, Jiangsu Union Technical Institute, Suzhou 215123, China)Abstract: This paper provides the design and implementation of a multi-point navigation system based on Baidu Map, the implementation of map display, real-time positioning, geocoding and multi-point navigation is emphasized. The system is implemented with Android system and Baidu map API, which can satisfy the navigation needs of users to set up multiple transit points and customize more personalized navigation routes.Key words: android; Baidu map; location; geographic coding; navigation随着社会发展,人们生活水平不断提高,旅游占休闲活动比重日渐上升,逐渐成为国人的“幸福必须品”。
百度地图Baidu Map API中文开发文档
控件 _______________________________________________________________7
地图控件概述 ___________________________________________________________ 7 向地图添加控件 _________________________________________________________ 7 控制控件位置 ___________________________________________________________ 8 修改控件配置 ___________________________________________________________ 8 自定义控件 _____________________________________________________________ 8
定义标注图标 _________________________________________________________________ 10 监听标注事件 _________________________________________________________________ 11 可托拽的标注 _________________________________________________________________ 11 内存释放 _____________________________________________________________________ 12
基于百度地图开发的地图信息系统
Android程序设计大作业基于百度地图开发的地图信息系统学院名称:计算机科学与信息工程学院课程名称: Android程序设计设计题目:地图信息系统目录第1章绪论 (1)1.1 课题研究的背景和目的 (1)1.2 国内外研究现状 (2)第2章课题设计相关技术概述 (3)2.1 开发语言 (3)2.2 Android的架构 (3)2.3 Android SDK (4)第3章软件需求分析 (6)3.1 需求分析 (6)3.2 地图运行功能架构 (6)第4章百度Key申请 (8)4.1 申请百度密钥 (8)4.2 配置百度地图SDK工程环境 (10)4.3 添加Key密钥 (11)第5章系统设计 (12)5.1 系统功能结构 (12)5.2 声明软件应用权限 (12)5.3 基本配置 (14)第6章系统实现 (38)6.1 系统运行环境和开发平台 (38)6.2 视图界面 (39)6.2.1 普通地图界面 (40)6.2.2 卫星地图界面 (41)第7章系统测试 (42)7.1 预期测试结果 (43)7.2 实际测试结果 (44)结论 (45)参考文献 (46)摘要本设计是一款适用于Android系统移动地图应用,其中调用的是百度地图Android SDK是一套基于Android2.1及以上版本的移动设备应用接口。
在手机地图领域做得最好的就当数谷歌地图和百度地图了,并且这两种地图都提供了丰富的API,使得任何开发者都可以轻松地将地图功能引入到自己的应用程序当中。
通过调用地图SDK接口可以轻松访问在手机上访问百度地图服务和数据,可以构建功能丰富、并且交互性强的手机移动地图应用程序。
UI设计方面借鉴了百度简约的设计风格,简单明了又不失独特。
Java开发语言和最新的Android Studio开发软件为本应用提供了稳定的开发环境及开发平台,通过设计本应用可以提供地图展示、地图定位和地图操作功能关键词:地图导航;百度地图;Java;Android SDK第1章绪论1.1 课题研究的背景和目的移动互联时代早就已经来临了,说明新的时代新的技术已经越来越成熟。
计算机毕业设计_基于安卓系统手机电子地图应用程序设计
摘要随着社会节奏越来越快,人们日常出行次数也越来越多。
为了节省人们出行时间,避免出行过程中由于各种原因导致出行浪费时间过多,所以本人毕业设计以人们的日常生活为出发点设计了一款基于Android的电子地图应用程序。
该程序能为人们提供自己想要查看地方的视图、规划出行路线、查询公交线路……百度在2010年5月的时候推出了一款开源的名为BaiduMap的移动终端软件平台,这为我们广大普通开发者提供了比较灵活灵活的BaiduMap展示与控制功能。
由于BaiduMap是永久免费的而且用Android平台开发出的应用程序开源性较好,因此如果可以把两者进行一下结合,这样不仅可以降低开发成本而且还能有效的开发出适合广大普通人群使用的电子地图应用程序。
经过几个月的努力,通过合理利用Android技术,在百度地图API的基础上开发出了一款方便用户出行使用的电子地图应用程序。
该应用程序界面简洁、操作简单、实用性较强基本上能满足用户日常的出行要求。
关键词:Android,电子地图,BaiduMap,出行Electronic Map Application Based on AndroidABSTRACTWith the development of the world, people spend more and more time on the road. In order to save people’s time on the road ,so I graduated from design to the daily life of people as the starting point was designed based on the application of electronic map based on Android. The program can provide the view of local city for people,planning travel routes,query bus lines for people……Baidu introduced an open source mobile terminal software platform—BaiduMap in 2010 May,BaiduMap provides a display and control function which is very flexible for the general developer.Since BaiduMap is free and the Android is open,so put them together can reduce the coast of development can also develop a convenient and effective application of electronic map for users.With several months of efforts,the function of the application was complected. And it has simple interface,simple operation,strong practicability.KEY WORDS: Android,Electronic Map,BaiduMap,travel目录前言 (1)第1章绪论 (2)1.1 研究内容 (2)1.2 研究意义 (2)1.3 Android研究现状和发展趋势 (3)1.4 GIS研究现状 (3)第2章系统开发和运行环境 (6)2.1 Android开发环境介绍 (6)2.2 Android开发平台搭建 (6)2.3 BaiduMap SDK介绍 (7)2.4 Baidu Map开发环境集成 (8)2.5 系统运行环境 (9)第3章系统分析 (10)3.1 研究目标 (10)3.2 需求分析 (10)3.3 性能分析 (11)第4章系统设计 (12)4.1 用户界面设计 (12)4.2 数据源设计 (12)4.3 系统流程设计 (13)第5章系统实现 (15)5.1 主功能界面开发 (15)5.2 基本地图加载功能开发 (16)5.2.1地图加载界面开发 (16)5.2.2地图加载功能开发 (17)5.3定位功能开发 (18)5.3.1定位功能界面开发 (18)5.3.2定位功能开发 (18)5.4 卫星云图功能开发 (19)5.5 实时交通状况功能开发 (20)5.6 公交线路查询功能开发 (21)5.6.1公交线路查询功能界面开发 (21)5.6.2公交线路查询功能开发 (22)5.7 路线规划功能开发 (23)5.7.1路线规划功能界面开发 (23)5.7.2线路规划功能开发 (24)第6章系统测试 (26)结论 (29)谢辞 (30)参考文献 (31)前言当今社会交通越来越便利,与此同时人们在出行时可供选择的交通方式也越来越多,出行过程中遇到的问题也会越来越多。
如何进行Android应用的离线地图和导航开发(二)
Android应用的离线地图和导航开发随着移动互联网的快速发展,人们对于地图和导航的需求越来越高。
然而,在某些情况下,我们可能需要在没有网络连接的情况下使用地图和导航功能,这就需要我们进行离线地图和导航的开发。
本文将介绍如何进行Android应用的离线地图和导航开发。
一、地图数据的获取与处理在进行离线地图和导航开发之前,我们首先需要获取地图数据。
有两种常见的获取方式:一种是从地图服务商处购买离线地图数据,例如高德地图、百度地图等;另一种是使用开源地图数据,例如OpenStreetMap。
获取到地图数据后,我们需要对其进行处理,以适应我们的应用需求。
处理地图数据的方式有很多种,可以选择将地图数据存储在SQLite数据库中,也可以选择将地图数据存储在本地文件中。
无论选择何种方式,我们都需要对地图数据进行切片,并建立索引,以便于后续的查询和使用。
二、地图的显示与交互在进行离线地图开发时,地图的显示与交互是非常重要的。
我们可以使用Android系统自带的MapView控件来显示地图,也可以选择使用第三方地图库,如Google Maps Android API、百度地图SDK等。
在地图显示方面,我们可以根据地图数据的切片和索引信息,动态加载并显示地图。
同时,我们还可以设置地图的缩放、旋转、倾斜等交互功能,以便用户可以更好地浏览地图。
三、离线导航的实现除了地图显示与交互之外,离线导航也是离线地图应用中的核心功能之一。
离线导航主要包括路径规划和导航指引两个方面。
路径规划是指根据起点和终点的位置信息,计算出最佳的行车路径。
在离线地图应用中,我们可以使用Dijkstra算法或A*算法等路径规划算法来实现离线路径规划功能。
导航指引是指在用户行车过程中,根据当前位置和路径信息,提供导航指示,帮助用户正确行驶。
在离线地图应用中,我们可以使用GPS定位和惯导等技术获取用户当前位置,并根据路径信息提供语音指引和图像指引等导航功能。
基于Android平台定位系统设计和实现
0 引言
随着 移 动 网络 时 代 发 展 步伐 的不 断 加快 , 市 面 B S : L o c a t i o n B a s e d S e r v i c e ) 软件 给 人们 生 活带 来 了实 质性 的变化 。人们 出行 不再像 以前 依赖 纸质
2 0 1 3牟第 1 2 期
文章编号 : 1 0 0 9— 2 5 5 2 ( 2 0 1 3 ) 1 2— 0 1 8 7— 0 4 中图分类号 : T P 3 1 6 . 8 9 文献标识码 : A
基于 A n d r o i d平 台定 位 系统 设 计 和 实现
李瑞 宣,王 山东 ,徐志远 ,王伶俐
Ab s t r a c t :T h i s p a p e r i n t r o d u c e d An d r o i d p l a t f o r m a n d B a i d u p o s i t i o n i n g S DK a n d t h e i r f e a t u r e s ;i t u s e d An d r o i d s ma r t p h o n e p l a f t o r m a n d B a i d u p o s i t i o n i n g S D K p r o p e r t i e s , w i t h B a i d u Ma p, d e s i g n e d a n d
百度地图API自己的地图自己绘制
HTML或者JSP 再或者PHP文件<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><style type="text/css">body, html{width: 100%;height: 100%;overflow: hidden;margin:0;}#allmap {height: 100%;overflow: hidden;}#result {border-left:1px dotted #999;height:100%;width:295px;position:absolute;top:0px;right:0px;font-size:12px; border:1px double red; display:none;}dl,dt,dd,ul,li{margin:0;padding:0;list-style:none;}p{font-size:12px;}dt{font-size:14px;font-family:"微软雅黑";font-weight:bold;border-bottom:1px dotted #000;padding:5px 0 5px 5px;margin:5px 0;}dd{padding:5px 0 0 5px;}li{line-height:28px;}#toolBar{position:relative;width:100%;height:5%;border:1px double red;}</style><script type="text/javascript" src="/api?v=1.4"></script><!--加载鼠标绘制工具--><script type="text/javascript" src="DrawingManager_min.js" charset="utf-8"></script><link rel="stylesheet" href="DrawingManager_min.css" /><!--加载检索信息窗口--><script type="text/javascript" src="SearchInfoWindow_min.js" charset="utf-8"></script><link rel="stylesheet" href="SearchInfoWindow_min.css" /><!--根据新浪得到地址。
基于百度地图的Android位置服务教学设计
基于百度地图的Android位置服务教学设计
程继洪;王振
【期刊名称】《烟台南山学院学报》
【年(卷),期】2015(000)004
【摘要】Android位置服务是移动App中的一项特色服务,开发位置服务应用是移动开发的重要方面。
采用百度地图SDK作为工具,对Android位置服务教学过程进行了设计,采用案例驱动教学法,选取案例尽量简洁,步骤尽量详细。
追求教学过程的可重复性、可操作性和易接受性,并对可能存在的问题给出了详细解释。
【总页数】5页(P14-18)
【作者】程继洪;王振
【作者单位】烟台南山学院,山东烟台265713
【正文语种】中文
【中图分类】G642.1
【相关文献】
1.基于Android平台和百度地图API的定位系统 [J], 王万丽
2.基于Android的体系架构及百度地图的自助旅游系统设计 [J], 余尤骋
3.一种基于Android平台与百度地图API的旅游助手 [J], 匡剑波;任昱果;黄晓洋
4.基于Android的百度地图LBS应用开发 [J], 于营
5.基于百度地图API和Android的手机端校园消息发布系统设计与实现——以南京晓庄学院为例 [J], 陈玲
因版权原因,仅展示原文概要,查看原文内容请购买。
百度地图Android定位SDK
百度地图Android定位SDK作者:黄丽敏时间:2013-07-27百度地图Android定位SDK为基于移动客户端开发LBS应用提供基础定位能力,它较百度Android 地图SDK而言,专注满足用户获取当前位置与获得地址信息描述功能,软件包体积小。
功能更多,接口更友好。
百度Android定位SDK支持Android1.5以及以上设备,提供:▪定位功能:通过GPS、网络定位(WIFI、基站)混合定位模式,返回当前所处的位置信息▪反地理编码功能:解析当前所处的位置坐标,获得详细的地址描述信息。
定位SDK支持多样化服务与定位策略,用户可通过设置不同的定位时间间隔、选择不同的定位服务模式、定制不同的定位结果信息来满足自身需求。
定位原理使用百度Android定位SDK必须注册GPS和网络使用权限。
定位SDK采用GPS、基站、Wi-Fi信号进行定位。
当应用程序向定位SDK发起定位请求时,定位SDK会根据应用的定位因素(GPS、基站、Wi-Fi信号)的实际情况(如是否开启GPS、是否连接网络、是否有信号等)来生成相应定位依据进行定位。
用户可以设置满足自身需求的定位依据:若用户设置GPS优先,则优先使用GPS进行定位,如果GPS定位未打开或者没有可用位置信息,且网络连接正常,定位SDK则会返回网络定位(即Wi-Fi与基站)的最优结果。
为了使获得的网络定位结果更加精确,请打开手机的Wi-Fi开关。
定位精度使用步骤:导入库文件在下载最新的库文件。
将liblocSDK3.so文件拷贝到libs/armeabi目录下。
将locSDK3.3.jar文件拷贝到工程的libs目录下,并在工程属性->Java Build Path->Libraries中选择“Add JARs”,选定locSDK3.3.jar,确定后返回。
设置AndroidManifest.xml在application标签中声明service组件,为了避免各个app公用1个service出现的权限问题,新版本各个app单独拥有自己的定位service.<serviceandroid:name="com.baidu.location.f"android:enabled="true"android:process=":remote"></service>声明使用权限<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><uses-permissionandroid:name="android.permission.READ_PHONE_STATE"></uses-permission><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.INTERNET"/><uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission><uses-permissionandroid:name="android.permission.READ_LOGS"></uses-permission>具体操作1.初始化LocationClient类LocationClient类必须在主线程中声明。
百度api的使用
idu.mapapi.MapView
android:id="@+id/bmapsView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true"
MapController
• • 处理地图移动和缩放的工具类。 方法: setCenter(GeoPoint point) : 在给定的中心点GeoPoint上设置地图视图。 setZoom(int zoomLevel) : 设置地图的缩放级别。
GeoPoint
• • 表示一个地理坐标点,存放经度和纬度,以微度的整数形式存储 构造方法: GeoPoint(int latitudeE6, int longitudeE6) 用给定的经纬度构造一个GeoPoint
/>
MapActivity类
• 管理显示在MapView类中activity处理逻辑的基础类 。MapActivity是 一个基类,它使用代码去管理任何一个Activity繁琐的事务,它的责 任包括: Activity生命周期管理 、在一个MapView后面创建和销毁服 务 、一个子类应当在onCreate(Bundle)创建它自己的MapView。 重要方法: public boolean initMapActivity(BMapManager bmapMan) 用于初使 化activity。
•
MapView
• • 一个显示地图的视图,当被焦点选中时,它能捕获按键事件和 触摸手势去平移和缩放地图 重要方法: setBuiltInZoomControls(boolean on):设置是否启用内置的缩 放控件。 getController():返回地图的MapController,这个对象可用于控 制和驱动平移和缩放。 setDoubleClickZooming(boolean bDoubleClickZooming) : 设置 mapview是否支持双击放大效果 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科毕业论文(设计)题目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.5GPS导航 (11)1.4论文结构 (11)2.Android平台与开发环境 (13)2.1Android系统 (13)2.1.1后缀简介 (13)2.1.2应用组件 (13)2.1.3系统运行库 (14)2.2Eclipse (14)2.2.1基本介绍 (14)2.2.2主要组成 (15)2.2.3软件开发包 (15)2.3Android开发环境搭建 (15)3.相关配置和框架结构 (16)3.1工程配置 (16)3.1.1Android 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.2MainActivity代码设计 (21)4.2.1创建地图MainActivity,并import相关类 (22)4.2.2MainActivity变量定义 (22)4.2.3MainActivity主要变量初始化 (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.2AndroidManifest.xml (26)5.2NearActivity代码设计 (26)5.2.1创建地图NearActivity,并import相关类 (26)5.2.2NearActivity变量定义 (26)5.2.3NearActivity主要变量初始化 (27)5.2.4各控件设置 (27)5.2.5事件处理 (27)6.路线规划设计 (29)6.1基本配置 (29)6.1.1配置way.xml (29)6.1.2AndroidManifest.xml (29)6.2WayActivity代码设计 (29)6.2.1创建地图WayActivity,并import相关类 (29)6.2.2WayActivity变量定义 (29)6.2.3WayActivity主要变量初始化 (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.2AndroidManifest.xml (34)7.2BusActivity代码设计 (34)7.2.1创建地图BusActivity,并import相关类 (34)7.2.2BusActivity变量定义 (35)7.2.3WayActivity主要变量初始化 (35)7.2.4各控件设置 (35)7.2.5事件处理 (35)8.驾车导航设计 (38)8.1基本配置 (38)8.1.1配置navigation.xml (38)8.1.2AndroidManifest.xml (38)8.2NavigationActivity代码设计 (38)8.2.1创建地图NavigationActivity,并import相关类 (38)8.2.2NavigationActivity变量定义 (39)8.2.3NavigationActivity主要变量初始化 (39)8.2.4设置单击事件 (39)总结 (42)致谢 (43)参考文献 (44)附录 (45)摘要在近年来移动设备智能化、轻便化的趋势下,地图导航已经成为人们出行必不可少的工具,给人们的生活带来了极大的便利。
百度地图API(Application Programming Interface,应用程序编程接口)是为开发者免费提供的一套基于百度地图服务的应用接口,包括Android SDK(Software Development Kit,软件开发工具包)、定位SDK等多种开发工具与服务,提供基本地图展现、搜索、定位等功能。
由于开发百度地图的免费性和使用安卓平台的开源性,不仅能够有效降低开发成本,而且能使每个用户自由的获取信息,这也为手机地图导航定位服务的普及做出了重要的贡献。
《Android平台下基于百度地图API的地图导航设计》采用时下最新版的百度地图API,该应用可以用来浏览城市地图、位置定位、附近搜索、公交路线查询、线路规划、驾车导航等功能,具有很强的实用性。
关键词:Android应用,百度地图API,地图导航AbstractIn 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),locative 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 map 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 Map2007年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导航、路线全览、文字导航、语音播报、实时路况、路线规划。