import com.baidu.mapapi.map.MapView; //导入方法依赖的package包/类
private void initMap() {
mMapView = (MapView) findViewById(R.id.share_map);
mBaiduMap = mMapView.getMap();
// 隐藏logo
View child = mMapView.getChildAt(1);
if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) {
child.setVisibility(View.INVISIBLE);
}
//地图上比例尺
//mMapView.showScaleControl(false);
// 隐藏缩放控件
mMapView.showZoomControls(true);
MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(18f);
mBaiduMap.setMapStatus(msu);
//定位初始化
locationClient = new LocationClient(this);
// 设置定位的相关配置
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
option.setOpenGps(true);
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(1000);
locationClient.setLocOption(option);
locationClient.registerLocationListener(new BDLocationListener() {
@Override
public void onReceiveLocation(final BDLocation bdLocation) {
if (bdLocation == null || mMapView == null)
return;
//构造定位数据
MyLocationData locData = new MyLocationData.Builder()
.accuracy(bdLocation.getRadius())
.direction(100).latitude(bdLocation.getLatitude())
.longitude(bdLocation.getLongitude()).build();
mBaiduMap.setMyLocationData(locData);
mMe.setLatitude(bdLocation.getLatitude());
mMe.setLongitude(bdLocation.getLongitude());
mMe.update(new UpdateListener() {
@Override
public void done(BmobException e) {
if (null == e) {
Log.i(TAG, "Me ===>>> Latitude : " + bdLocation.getLatitude() + ", Longitude : " + mLongitude);
}
}
});
// 第一次定位时,将地图位置移动到当前位置
if (firstLocation) {
firstLocation = false;
LatLng xy = new LatLng(bdLocation.getLatitude(),
bdLocation.getLongitude());
MapStatusUpdate status = MapStatusUpdateFactory.newLatLng(xy);
mBaiduMap.animateMapStatus(status);
}
}
});
}