[Android]百度地图初使用(2)
2015-11-22 02:23
429 查看
一、定位功能
使用的API
LocationClient进行定位的一些功能(核心)
BDLocationListener
二、代码实现
使用的API
LocationClient进行定位的一些功能(核心)
BDLocationListener
二、代码实现
//定位相关 //定位服务的客户端。宿主程序在客户端声明此类,并调用,目前只支持在主线程中启动 private LocationClient locationClient; //自定义定位请求回调接口,继承BDLocationListener private MyLocationListener myLocationListener;
/** * 定位初始化 */ private void initLocation(){ locationClient = new LocationClient(this); myLocationListener = new MyLocationListener(); //注册回调接口 locationClient.registerLocationListener(myLocationListener); //配置定位SDK各配置参数,比如定位模式、定位时间间隔、坐标系类型等 LocationClientOption locationClientOption = new LocationClientOption(); locationClientOption.setCoorType("bd0911"); locationClientOption.setIsNeedAddress(true);//设置是否需要地址信息,默认为无地址 locationClientOption.setOpenGps(true); locationClientOption.setScanSpan(1000); //locationClient设置配置信息 locationClient.setLocOption(locationClientOption); }
/** *在Activity的onStart和onStop方法中开启,关闭定位 */ @Override protected void onStart() { super.onStart(); //开启定位 baiduMap.setMyLocationEnabled(true); if (!locationClient.isStarted()){ locationClient.start(); } } @Override protected void onStop() { super.onStop(); //关闭定位 baiduMap.setMyLocationEnabled(false); locationClient.stop(); }
/** * 自定义接口回调 */ private class MyLocationListener implements BDLocationListener{ /** * * @param bdLocation 回调的百度坐标类,内部封装了如经纬度、半径等属性信息 */ @Override public void onReceiveLocation(BDLocation bdLocation) { //定位数据-->将bdlocation中的信息转到MyLocationData中 MyLocationData data= new MyLocationData.Builder()// .accuracy(bdLocation.getRadius()) .latitude(bdLocation.getLatitude()) .longitude(bdLocation.getLongitude()) .build(); //添加定位信息 baiduMap.setMyLocationData(data); //用来存储用户当前位置的经纬度,这两个成员变量用于用户的重定位 mlat = bdLocation.getLatitude(); mlong = bdLocation.getLongitude(); //将地图中心定义到当前位置 if(isFirstIn){ //设置经纬度 LatLng latLng = new LatLng(bdLocation.getLatitude(),bdLocation.getLongitude()); MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLng(latLng); baiduMap.animateMapStatus(mapStatusUpdate); isFirstIn = false; Toast.makeText(MainActivity.this,bdLocation.getAddrStr(),Toast.LENGTH_SHORT).show(); } } }
相关文章推荐
- [Android]百度地图初使用(1)
- android studio 中使用aidl
- android 蓝牙开发
- Android自定义ScrollView实现一键置顶功能
- Android的材料设计兼容库(Design Support Library)
- android直接读取数据库文件
- android 5.0 -- Activity 过渡动画
- Android ADB命令大全
- android studio 运行Failure [INSTALL_FAILED_OLDER_SDK]
- Android 开发之ViewPage官方文档学习笔记
- Android ViewHolder的工具类,ListView超简洁写法
- ubuntu14.04编android2.3.1的一些坑
- 使用NDK构建android程序
- 浅谈Android Service
- 国内镜像下载Android源码
- Android 中的adapter和作用以及常见的adapter
- Android Activity转场动画
- 读Android蓝牙通信源码
- android Listview显示不同的item遇到的问题
- 第二章 安装Android开发环境