转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37729091

最近公司要把百度地图集成的项目中,于是我就研究了一天百度地图的SDK,当前的版本:Android SDK v3.0.0 。 虽然百度地图网上相关代码比较多,大多可能都是比较旧的版本,且百度地图API的改动感觉也比较大,所以再此跟大家分享一下一天的劳动成功。

下面简单展示下,博客中会介绍的功能:

1、功能介绍

a、首先肯定是导入地图,然后就是地图模式的一些切换,普通,卫星,实时交通什么的。

b、定位功能,定位当前位置。

效果图:

c、动态添加覆盖物,点击覆盖物,弹出层以及其他效果。

效果图:

d、结合方向传感器,为地图的定位功能添加方向,本人极其路痴,不分东南西北,所以此功能对我来说非常重要,手机不断旋转,我才能知道当前应该走哪条路,直接显示的地图对我来说没用。

效果图(我360度的旋转手机,观察效果图的变化):

切换到别的模式也是很炫的:

e、提供离线地图下载,可以极大的省去用户的流量,也能保证在无网络情况对地图的使用。

基本这上述的功能,第一篇,还是从零开始,先把百度地图导入app再说。

2、申请密钥

a、申请密钥,到百度API控制台的页面:http://lbsyun.baidu.com/apiconsole/key

输入要应用名称,选择应用类型,输入安全吗。

b、关于安全码 ( 数字签名;包名 ) 的获取:

打开IDE:

黑框框住的就是数字签名,然后包名就是咱们应用的包名,直接用分号连接:例如:F5:10:39:D9:81:57:BD:2E:A0:CD:E3:EB:5E:C4:CC:E0:E0:0D:41:56;com.zhy.zhy_baidu_ditu_demo03

最后点击完成,就能获取密钥了:

3、第一个baidu map应用

下载就不多说了,直接点击官网的相关下载就行选择就可,后面我也会贴上源码。

配置:

第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;

注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。
android_dev1.png
第二步:在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_vX_X_X.jar,确定后返回。
通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。
注意:由于adt插件升级,若您使用Eclipse adt 22的话,需要对开发环境进行相应的设置,方法如下:
1). 在Eclipse 中选中工程,右键选 Properties->Java Build Path->Order and Export 使 Android Private Libraries处于勾选状态;
2). Project -> clean-> clean all .

a、在application中添加开发密钥

[html] view plaincopy
  1. <application
  2. <meta-data
  3. android:name="com.baidu.lbsapi.API_KEY"
  4. android:value="开发者 key" />
  5. </application>

b、添加所需权限

[html] view plaincopy
  1. <uses-permission android:name="android.permission.GET_ACCOUNTS" />
  2. <uses-permission android:name="android.permission.USE_CREDENTIALS" />
  3. <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
  4. <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
  5. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  6. <uses-permission android:name="android.permission.INTERNET" />
  7. <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
  8. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  9. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  10. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  11. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  12. <uses-permission android:name="android.permission.BROADCAST_STICKY" />
  13. <uses-permission android:name="android.permission.WRITE_SETTINGS" />
  14. <uses-permission android:name="android.permission.READ_PHONE_STATE" />

c、布局文件中添加地图控件

[html] view plaincopy
  1. <com.baidu.mapapi.map.MapView
  2. android:id="@+id/id_bmapView"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:clickable="true" />

d、在应用程序创建时初始化 SDK引用的Context 全局变量:

[java] view plaincopy
  1. @Override
  2. protected void onCreate(Bundle savedInstanceState)
  3. {
  4. super.onCreate(savedInstanceState);
  5. requestWindowFeature(Window.FEATURE_NO_TITLE);
  6. // 在使用SDK各组件之前初始化context信息,传入ApplicationContext
  7. // 注意该方法要再setContentView方法之前实现
  8. SDKInitializer.initialize(getApplicationContext());
  9. setContentView(R.layout.activity_main);
  10. }

好了,经过这四步就能显示地图了~~

e、不过地图很耗电,所以有必要管理其声明周期

[java] view plaincopy
  1. package com.zhy.zhy_baidu_ditu_demo00;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.Window;
  5. import com.baidu.mapapi.SDKInitializer;
  6. import com.baidu.mapapi.map.MapView;
  7. public class MainActivity extends Activity
  8. {
  9. private MapView mMapView = null;
  10. @Override
  11. protected void onCreate(Bundle savedInstanceState)
  12. {
  13. super.onCreate(savedInstanceState);
  14. requestWindowFeature(Window.FEATURE_NO_TITLE);
  15. // 在使用SDK各组件之前初始化context信息,传入ApplicationContext
  16. // 注意该方法要再setContentView方法之前实现
  17. SDKInitializer.initialize(getApplicationContext());
  18. setContentView(R.layout.activity_main);
  19. // 获取地图控件引用
  20. mMapView = (MapView) findViewById(R.id.id_bmapView);
  21. }
  22. @Override
  23. protected void onDestroy()
  24. {
  25. super.onDestroy();
  26. // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
  27. mMapView.onDestroy();
  28. mMapView = null;
  29. }
  30. @Override
  31. protected void onResume()
  32. {
  33. super.onResume();
  34. // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
  35. mMapView.onResume();
  36. }
  37. @Override
  38. protected void onPause()
  39. {
  40. super.onPause();
  41. // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
  42. mMapView.onPause();
  43. }
  44. }

好了,完成。其实百度开发指南上对了helloworld这篇也极其清楚~~~~

源码点击下载

百度地图相关博客视频版本已经上线:Android中百度地图的使用期待您的支持。

百度地图的植入流程介绍相关推荐

  1. 百度地图AK申请流程

    版权声明:本文为博主原创文章,未经博主允许不得转载. 百度地图AK申请流程 版权声明:本文为博主原创文章,未经博主允许不得转载.https://mp.csdn.net/mdeditor/8299424 ...

  2. 百度地图定位开发流程

    表达能力真的有点挫,所以都没有习惯写博客,但是,学习了一个知识点,也要记录一下,方便下次调用的时候,可以快速的找到. 这次就是记录一下百度地图的引用流程.主要是定位这个功能在我们平时的项目中用的比较多 ...

  3. 百度地图离线开发需求介绍

    离线地图资源,完全可脱离互联网访问,正在发愁局域网或内网使用地图定位的小伙伴们福音来了......哈哈哈哈哈!!! 支持各大主流浏览器 IE7.8.9.10.11,火狐.360浏览器.谷歌浏览器 如果 ...

  4. 百度地图API申请流程

    经常在网站的公司介绍里面会嵌入一个百度地图,在此记录. 一.首先创建一个百度地图的应用,获取AK. 点击申请:申请百度地图应用 二.获取百度地图引入代码 点击获取:获取地图引入代码 根据创建地图的步骤 ...

  5. vue 项目中百度地图 API 使用流程

    文章目录 一.在百度地图开放平台注册账号并登录.认证 二.创建 ak 三.项目使用 四.丰富的功能 一.在百度地图开放平台注册账号并登录.认证 1.网址:http://lbsyun.baidu.com ...

  6. 地理位置服务——百度地图API

    先去百度地图开放平台获取密钥: 获得密钥后可以在百度地图开放平台的控制台管理 然后把百度地图开放平台的示例中心复制到编译器(注意将ak填上自己的密钥): 然后就可以运行自己的代码了: 以上就是申请百度 ...

  7. 每天导航超4亿公里,百度地图整合AI功能

    9月19日,百度地图召开"AI出行更简单 百度地图十一全民畅行节"发布会上.百度地图在AI技术平台体系(AIG)内,越来越深度地与AI结合,更加顺畅地为百度地图进行定制化AI,同时 ...

  8. Android 百度地图 SDK v3.0.0 (四) 引入离线地图功能

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37758097 一直觉得地图应用支持离线地图很重要啊,我等移动2G屌丝,流量不易, ...

  9. 根据经纬度坐标查看百度地图位置

    问题描述: 已知一个位置点坐标,想查看其在百度地图中的位置,以及街景情况. 实现方法: 由于中国测绘法律法规,通常我们能获取到的经纬度坐标为GCJ-02坐标系下的经纬度坐标,即加偏后的经纬度坐标. 打 ...

最新文章

  1. python smtp 群发邮件
  2. FormView里用FindControl找不到控件的解决方法
  3. 转:Ubuntu下ibus-sunpinyin的安装及翻页快捷键设置!
  4. 无监督学习 k-means_无监督学习-第1部分
  5. (转载)spring配置hibernate 事务。
  6. thinkphp开发发卡网源码
  7. dojo 加载自定义module的路径问题
  8. idea 模块jdk依赖总是自动变_解决IDEA中导入新的maven依赖后Language Level自动重置问题...
  9. 10天基于STM32F401RET6智能锁项目实战第1天(环境搭建和新建工程)
  10. L2-016 愿天下有情人都是失散多年的兄妹(DFS)
  11. JavaWeb网络考试系统
  12. python numpy 矩阵运算_NumPy向量和矩阵的运算
  13. java数字转为大写_Java 将数字金额转成中文大写
  14. 基于canoe 新建一个lin工程_详细步骤讲解如何在CANoe中创建一个LIN通讯工程(多图+详解)...
  15. JavaEE项目的三层架构
  16. 为什么要进行网站流量分析?从6个方面告诉你答案
  17. 还不了解游戏建模教程吗?看完这篇文章让你从小白变为油条
  18. 找不到列 dbo 或用户定义的函数或聚合 dbo xxx ,或者名称不明确
  19. qt creator在高分辨率笔记本上控件运行显示不全的问题解决方法
  20. 命令行基础、目录和文件管理、教学环境介绍、

热门文章

  1. PREP 语法笔记 10
  2. 易语言 爬虫 网络请求 保存图片
  3. linux画平面图软件,Sweet Home 3D傻瓜平面图软件,人人都能画出室内平面图
  4. WinRAR压缩解压缩软件命令行参数
  5. 『集合』logo制作+音乐免费下载+全能计算机+高清壁纸
  6. 推荐BIG DATA Spark 的7本学习电子书籍(大牛专区)
  7. Excel柱状图,饼图,折线图
  8. 高考失利出国留学计算机专业,高考失利如何出国留学
  9. Vue 2.0 官网 API 零碎知识整理
  10. 步进电机的原理与控制