基于百度LBS的定位
基于百度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的定位相关推荐
- Android基于百度LBS的定位
Android基于百度LBS的定位 一.百度SDK使用流程 1. 注册开发者账号 2. 获取SHA1和包名 二.AndroidStudio的配置 1. 下载SDK 2. 配置AndroidManife ...
- 基于百度LBS的APP开发
基于百度LBS的APP开发 一.引用百度SDK 1.登录平台 2.创建应用 3.获取密匙 4.下载开发包 5. 添加注册远程服务和配置应用Key 二.在AS中完成 1.布局mainactivity.x ...
- Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK
原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...
- 基于百度地图实现Android定位功能实现
基于百度地图实现Android定位功能实现 初始化 一>获取SHA1 二>Android studio 配置 (1)下载百度地图sdk (2)解压安装包 (3)回到刚刚配置的jar包,右击 ...
- 基于百度地图实现Android定位功能实现(详解+教程)
基于百度地图实现Android定位功能实现(详解+教程) 1.初始化 (一)获取到SHA1 (1)找到View中的Tool Windows并打开Terminal (2)找到你的jdk的bin目录,小编 ...
- 百度LBS服务我们自己上传数据,我们客户端获取数据然后进行小黄车和膜拜单车定位描点等骚操作
一,演示和需求的SDK和ak等配置最近我们一个项目需要自己android端上传数据到百度LBS服务,然后获取数据并显示.搞了2天完成了.其实很简单的哦!我们一步步来,今天的活我一小时搞定,一天写博客, ...
- 安卓开发笔记(十二)—— 基于百度地图SDK完成地图中心定位,marker转向,动态定位
中山大学数据科学与计算机学院本科生实验报告 (2018年秋季学期) 项目源码:Github传送门 第十七周任务 一.实验题目 地图 第十七周实验目的 接入百度地图API 掌握少量的百度地图API接口 ...
- 安卓学习专栏——百度地图(1)获取SHA1指纹申请百度地图API Key使用百度LBS定位功能(图文保姆级)
步骤 系列文章 前言 1.前期准备 2.创建应用 3.获取发布版SHA1和开发版SHA1 3.1找到.android文件夹位置 3.2Android Studio的Terminal中cd路径 3.3输 ...
- 在Fragment中实现百度地图,定位到当前位置(基于SDKv2.1.0)
使用最新版本的百度地图需要注意的几个地方: 1.libs文件夹下要有android-support-v4.jar.baidumapapi_v2_1_0.jar.locSDK_3.1.jar三个jar包 ...
最新文章
- STM32 flash
- SAP物料管理自动记帐详解
- 双亲委派机制 详解(手画详图)面试高频 你值得拥有!!!
- JavaScript越来越简单啦啦啦
- ubuntu配置vnc访问
- 学习C++不要纠结了
- 多版本opencv 兼容
- 具有JDK 12精简数字格式的自定义精简数字模式
- 746. 使用最小花费爬楼梯 golang 动态规划
- Maven 操作手册
- Matlab简单教程:函数
- Java 学习路线一条龙版
- [渝粤教育] 周口师范学院 大学计算机基础 参考 资料
- java基础中的基础,简单中的简单
- 用vue3.0.1如何搭建仿京东的电商H5项目呢?本文实战教你
- 按键精灵手机版 找图(Findpic)以及其与点击、runapp和找点的对比
- 群晖(Synology)NAS服务器硬盘莫名丢失存储空间的解决方法
- 大工19《计算机应用基础》在线测试2,大工19春《计算机应用基础》在线测试2 在Excel 2010中 存储数据的表格被称为...
- dotnet Core 启动地址及端口配置()
- 使用python计算马哈顿距离、切比雪夫距离、欧式距离、夹角余弦