基于百度LBS的定位

  • 注册百度开发者账号
  • 地图
  • 定位

注册百度开发者账号

1.进入百度地图开放平台注册

地图

2.创建应用

3.获取SHA1


创建成功


下载SDK


导入jar包


导入成功

配置AndroidManifest.xml文件

<application>  <meta-data  android:name="com.baidu.lbsapi.API_KEY"  android:value="开发者 key" />
</application>
<!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

在布局文件中添加地图容器

<com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:clickable="true"android:layout_weight="1" />

地图初始化

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();//在使用SDK各组件之前初始化context信息,传入ApplicationContext   SDKInitializer.initialize(this);//自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.//包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。SDKInitializer.setCoordType(CoordType.BD09LL);}
}

创建地图Activity,管理MapView生命周期

public class BookmarkFragment extends Fragment {private MapView mMapView = null;@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view = inflater.inflate(R.layout.bookmark_fragment,container,false);super.onCreate(savedInstanceState);//获取地图控件引用  mMapView = (MapView) view.findViewById(R.id.bmapView);return view;}@Overridepublic void onResume() {super.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  mMapView.onResume();}@Overridepublic void onPause() {super.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  mMapView.onPause();}@Overridepublic void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  mMapView.onDestroy();}
}

效果图:

定位

配置AndroidManifest.xml文件

<!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<service android:name="com.baidu.location.f"android:enabled="true"android:process=":remote"/>

开启地图的定位图层

BaiduMap mBaiduMap = null;mBaiduMap.setMyLocationEnabled(true);
public class MyLocationListener extends BDAbstractLocationListener {private BaiduMap mBaiduMap;private MapView mMapView;public MyLocationListener(BaiduMap mBaiduMap,MapView mMapView){this.mBaiduMap=mBaiduMap;this.mMapView=mMapView;}@Overridepublic void onReceiveLocation(BDLocation location) {//mapView 销毁后不在处理新接收的位置if (location == null || mMapView == null){return;}MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())// 此处设置开发者获取到的方向信息,顺时针0-360.direction(location.getDirection()).latitude(location.getLatitude()).longitude(location.getLongitude()).build();mBaiduMap.setMyLocationData(locData);}
}

通过LocationClient发起定位

//定位初始化
mLocationClient = new LocationClient(view.getContext());//通过LocationClientOption设置LocationClient相关参数
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true); // 打开gps
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(1000);//设置locationClientOption
mLocationClient.setLocOption(option);//注册LocationListener监听器
MyLocationListener myLocationListener = new MyLocationListener(mBaiduMap,mMapView);
mLocationClient.registerLocationListener(myLocationListener);//开启地图定位图层
mLocationClient.start();

正确管理各部分的生命周期

@Override
protected void onResume() {mMapView.onResume();super.onResume();
}@Override
protected void onPause() {mMapView.onPause();super.onPause();
}@Override
protected void onDestroy() {mLocationClient.stop();mBaiduMap.setMyLocationEnabled(false);mMapView.onDestroy();mMapView = null;super.onDestroy();
}

效果图:

参考链接:https://lbsyun.baidu.com/index.php?title=androidsdk

基于百度LBS的定位相关推荐

  1. Android基于百度LBS的定位

    Android基于百度LBS的定位 一.百度SDK使用流程 1. 注册开发者账号 2. 获取SHA1和包名 二.AndroidStudio的配置 1. 下载SDK 2. 配置AndroidManife ...

  2. 基于百度LBS的APP开发

    基于百度LBS的APP开发 一.引用百度SDK 1.登录平台 2.创建应用 3.获取密匙 4.下载开发包 5. 添加注册远程服务和配置应用Key 二.在AS中完成 1.布局mainactivity.x ...

  3. Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK

    原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...

  4. 基于百度地图实现Android定位功能实现

    基于百度地图实现Android定位功能实现 初始化 一>获取SHA1 二>Android studio 配置 (1)下载百度地图sdk (2)解压安装包 (3)回到刚刚配置的jar包,右击 ...

  5. 基于百度地图实现Android定位功能实现(详解+教程)

    基于百度地图实现Android定位功能实现(详解+教程) 1.初始化 (一)获取到SHA1 (1)找到View中的Tool Windows并打开Terminal (2)找到你的jdk的bin目录,小编 ...

  6. 百度LBS服务我们自己上传数据,我们客户端获取数据然后进行小黄车和膜拜单车定位描点等骚操作

    一,演示和需求的SDK和ak等配置最近我们一个项目需要自己android端上传数据到百度LBS服务,然后获取数据并显示.搞了2天完成了.其实很简单的哦!我们一步步来,今天的活我一小时搞定,一天写博客, ...

  7. 安卓开发笔记(十二)—— 基于百度地图SDK完成地图中心定位,marker转向,动态定位

    中山大学数据科学与计算机学院本科生实验报告 (2018年秋季学期) 项目源码:Github传送门 第十七周任务 一.实验题目 地图 第十七周实验目的 接入百度地图API 掌握少量的百度地图API接口 ...

  8. 安卓学习专栏——百度地图(1)获取SHA1指纹申请百度地图API Key使用百度LBS定位功能(图文保姆级)

    步骤 系列文章 前言 1.前期准备 2.创建应用 3.获取发布版SHA1和开发版SHA1 3.1找到.android文件夹位置 3.2Android Studio的Terminal中cd路径 3.3输 ...

  9. 在Fragment中实现百度地图,定位到当前位置(基于SDKv2.1.0)

    使用最新版本的百度地图需要注意的几个地方: 1.libs文件夹下要有android-support-v4.jar.baidumapapi_v2_1_0.jar.locSDK_3.1.jar三个jar包 ...

最新文章

  1. STM32 flash
  2. SAP物料管理自动记帐详解
  3. 双亲委派机制 详解(手画详图)面试高频 你值得拥有!!!
  4. JavaScript越来越简单啦啦啦
  5. ubuntu配置vnc访问
  6. 学习C++不要纠结了
  7. 多版本opencv 兼容
  8. 具有JDK 12精简数字格式的自定义精简数字模式
  9. 746. 使用最小花费爬楼梯 golang 动态规划
  10. Maven 操作手册
  11. Matlab简单教程:函数
  12. Java 学习路线一条龙版
  13. [渝粤教育] 周口师范学院 大学计算机基础 参考 资料
  14. java基础中的基础,简单中的简单
  15. 用vue3.0.1如何搭建仿京东的电商H5项目呢?本文实战教你
  16. 按键精灵手机版 找图(Findpic)以及其与点击、runapp和找点的对比
  17. 群晖(Synology)NAS服务器硬盘莫名丢失存储空间的解决方法
  18. 大工19《计算机应用基础》在线测试2,大工19春《计算机应用基础》在线测试2 在Excel 2010中 存储数据的表格被称为...
  19. dotnet Core 启动地址及端口配置()
  20. 使用python计算马哈顿距离、切比雪夫距离、欧式距离、夹角余弦

热门文章

  1. 千千静听、Foobar2000、Winamp三者的比较
  2. php随机名人名言,php随机输出名人名言的代码
  3. 软件开发的定律:布鲁克定律
  4. 精益生产如何与数字化结合?
  5. 网络知识入门,探讨DNS服务器在网页请求中的作用(二)
  6. mysql学习笔记之连接查询与子查询
  7. 利用前三年的数据预测2018年NBA常规赛东西部前八的详细过程和解决思路(19年类似)
  8. php 顺时针打印矩阵,这题
  9. php 八字算法,南方排八字专业程序 php不用内置函数对数组排序的两个算法代码...
  10. 我的LLVM学习笔记——OLLVM混淆研究之FLA篇