百度地图
好久不曾写代码 突然写了一些定位 搞了好几天 终于出来了 先申明 我还是编程小白 不过大家可以随便看看
写得不是很工整
需要转发
public class MainActivity extends AppCompatActivity {
// BottomNavigationBar bottomNavigationBar;
public MapView mMapView;
public BaiduMap baiduMap;
double mCurrentLantitude= 0.0;
double mCurrentLongitude= 0.0;
// 定位相关声明
public LocationClient locationClient = null;
boolean isFirstLoc = true;// 是否首次定位
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
BDLocationListener myListener = new BDLocationListener() {
@Override
public void onReceiveLocation(BDLocation location) {
// map view 销毁后不在处理新接收的位置
if (location == null || mMapView == null)
return;
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
// 此处设置开发者获取到的方向信息,顺时针0-360
.direction(10).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
baiduMap.setMyLocationData(locData);
mCurrentLantitude = location.getLatitude();
mCurrentLongitude = location.getLongitude(); //设置定位数据
// baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
if (isFirstLoc) {
isFirstLoc = false;
LatLng ll = new LatLng(location.getLatitude(),
location.getLongitude());
MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16); //设置地图中心点以及缩放级别
// MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);
baiduMap.animateMapStatus(u);
// isFirstLoc = false;
}
}
};
baiduMap = mMapView.getMap();
//开启定位图层
baiduMap.setMyLocationEnabled(true);
locationClient = new LocationClient(getApplicationContext()); // 实例化LocationClient类
locationClient.registerLocationListener(myListener); // 注册监听函数
this.setLocationOption(); //设置定位参数
locationClient.start(); // 开始定位
}
@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();
}
private void setLocationOption() {
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true); // 打开GPS
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);// 设置定位模式
option.setCoorType("bd09ll"); // 返回的定位结果是百度经纬度,默认值gcj02
option.setScanSpan(5000); // 设置发起定位请求的间隔时间为5000ms
option.setIsNeedAddress(true); // 返回的定位结果包含地址信息
option.setNeedDeviceDirect(true); // 返回的定位结果包含手机机头的方向
locationClient.setLocOption(option);
}
工程下载地址:http://download.csdn.net/detail/qq_35224776/9723692
百度地图最新SDK撰写
邮箱:1632365610@qq.con
微信关注 “安卓集中营”,获取更多
或者扫码关注
一起共同学习探讨