百度地图之定自己当前的位置
来源:互联网 发布:剑三捏脸数据网站 编辑:程序博客网 时间:2024/05/18 00:21
1,导入定位包-----------定位有自己特定的包
2,其他的与百度基础定位配置相同
3,开始写代码:
public class MainActivity extends Activity {
boolean flag=true;
MapView mMapView = null;
BaiduMap map=null;
PoiSearch mSearch=null;
Button btn_search;
public LocationClient mLocationClient = null;
public BDLocationListener myListener = new MyLocationListener();
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
btn_search=(Button) findViewById(R.id.btn_search);
mMapView=(MapView) findViewById(R.id.bmapView);
map=mMapView.getMap();
onCreate() ;
location();
mLocationClient.start();
}
}
/***
* 第一步,初始化LocationClient类
此处需要注意:LocationClient类必须在主线程中声明,需要Context类型的参数。
Context需要时全进程有效的Context,推荐用getApplicationConext获取全进程有效的Context。
* */
public void onCreate() {
mLocationClient = new LocationClient(getApplicationContext());
//声明LocationClient类
mLocationClient.registerLocationListener( myListener );
//注册监听函数
}
/*
* 第二步,配置定位SDK参数
设置定位参数包括:定位模式(高精度定位模式、低功耗定位模式和仅用设备定位模式),返回坐标类型,是否打开GPS,是否返回地址信息、
位置语义化信息、POI信息等等。
LocationClientOption类,该类用来设置定位SDK的定位方式,例如:
*
* ***/
private void location(){
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Battery_Saving);
//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
option.setCoorType("bd09ll");
//可选,默认gcj02,设置返回的定位结果坐标系
int span=1000;
option.setScanSpan(span);
//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
option.setIsNeedAddress(true);
//可选,设置是否需要地址信息,默认不需要
option.setOpenGps(true);
//可选,默认false,设置是否使用gps
option.setLocationNotify(true);
//可选,默认false,设置是否当GPS有效时按照1S/1次频率输出GPS结果
option.setIsNeedLocationDescribe(true);
//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
option.setIsNeedLocationPoiList(true);
//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
option.setIgnoreKillProcess(false);
//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
option.SetIgnoreCacheException(false);
//可选,默认false,设置是否收集CRASH信息,默认收集
option.setEnableSimulateGps(false);
//可选,默认false,设置是否需要过滤GPS仿真结果,默认需要
mLocationClient.setLocOption(option);
}
/***
* 第三步,实现BDLocationListener接口
BDLocationListener为结果监听接口,异步获取定位结果,实现方式如下:
* **/
public class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation bdLocation) {
Double latitude = bdLocation.getLatitude();
Double longitude = bdLocation.getLongitude();
MarkerOptions options = new MarkerOptions().icon(
BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher))
.position(new LatLng(latitude, longitude));
// 首先清除图层 不然当位置改变的时候图层会叠加
map.clear();
map.addOverlay(options);
LatLng latLng = new LatLng(latitude, longitude);
//设置当前位置的缩放级别。---绑定的是当前的位置,因此这句话一定需要
map.setMapStatus(MapStatusUpdateFactory.newLatLngZoom(latLng,
17.0f));
System.err.println("llllllllllaaa" + latLng.toString());
}
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
}
}
- 百度地图之定自己当前的位置
- 百度地图api--定位当前的位置
- 关于百度地图显示自己的位置
- 百度地图不能定位自己的位置
- 使用百度地图 显示自己的位置
- 百度地图上定位自己的位置
- Android百度地图,定位自己的位置。
- 百度地图获取自己位置
- 百度地图实现多点定位(包含两种点:当前自己所在的位置和周围需要查找的点 )
- 百度地图BaiduMap--学习(二)------定位到自己的位置之没反应
- 百度地图BaiduMap--学习(三)------让自己的位置显示在地图上之“火星差”
- 使用百度地图API,定位并显示自己的位置
- 百度地图上定位自己所在的位置
- 如何用百度地图api地图上显示自己位置以及数据库里的位置
- 百度地图之定位当前
- 百度地图之定位图层
- Android百度地图之定位图层
- Android 百度地图点击返回自己位置
- Git版本控制 从入门到精通
- 去除inline-block之间的间隙
- 算法相关——Java排序算法之快速排序(三)
- jQuery EasyUI框架 modalwindow 初体验
- 微信小程序开发--初级实践
- 百度地图之定自己当前的位置
- SMARTCLIENT入门教程之六
- 统计各数据个数
- Android开发——运行时请求权限
- mysql数据库的安装
- [绍棠] 高斯模糊效果汇总
- 金价“闪跌”创5年内新低,投资者艰难之行
- ImageView的tint属性
- HBase最佳实践-读性能优化策略