Android百度地图SDK版本:5.2
1.创建并在项目中配置好AK;
2.Application中初始化地图组件:SDKInitializer.initialize(mContext);
3.自己页面中使用如下:
<span style="font-family:Microsoft YaHei;">/**
* 考勤详细页
* Created by WnsnailYang on 2014/7/7.
*/
@EActivity(R.layout.activity_attendance_detail)
public class AttendanceDetailActivity extends BaseActivity {
@Extra("attendanceInfoModel")
AttendanceInfoModel attendanceInfoModel;
@ViewById(R.id.header_layout)
BaseHeadBar header_layout;//头部标题
@ViewById(R.id.map_layout)
RelativeLayout mapView_layout;
@ViewById(R.id.tv_no_loc)
TextView tv_no_loc;
@ViewById(R.id.attendance_detail_grid_photo)
NoScrollGridView photoGrid;//相片缩略图GridView
@ViewById(R.id.attendance_detail_tv_type)
TextView tv_type;
@ViewById(R.id.attendance_detail_tv_time)
TextView tv_time; //定位
@ViewById(R.id.bmapView)
MapView mMapView;
//地图
private BaiduMap mBaiduMap;
private LatLng mLatLng;
private BitmapDescriptor mBitmapDescriptor;
//图片
private ArrayList<PhotoInfoModel> photosList = new ArrayList<PhotoInfoModel>();//照片URL集合
private PhotoGridAdapter photoGridAdapter;//相片GridView适配器
@AfterViews
void init() {
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
header_layout.setMidTitle(getString(R.string.attendance_detail)); //设置标题
tv_type.setText(attendanceInfoModel.placeName);
tv_time.setText(attendanceInfoModel.updateTime);
initPhoto();
initMap();
}
private void initPhoto() {
photosList = attendanceInfoModel.picList;
if (BaseUtils.listIsNullOrEmpty(photosList)) {
return;
}
//设置图片浏览
photoGridAdapter = new PhotoGridAdapter(this);
photoGridAdapter.setPhotosList(photosList);
photoGridAdapter.setDisplayDelImage(false);
photoGrid.setAdapter(photoGridAdapter);
photoGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
AppUtils.imageBrower(AttendanceDetailActivity.this, position, photosList);
}
});
photoGridAdapter.notifyDataSetChanged();
}
/**
* 初始化地图设置,添加标注信息
*/
private void initMap() {
mBaiduMap = mMapView.getMap();
mLatLng = getLatLng();
if (mLatLng == null) {
tv_no_loc.setVisibility(View.VISIBLE);
mMapView.setVisibility(View.GONE);
return;
}
setCenterMap();//首先设置中心点
addOverlay();//添加标注
addInfoWindow();//添加覆盖文字
}
/**
* 添加覆盖文字
*/
private void addInfoWindow() {
View view = getLayoutInflater().inflate(R.layout.map_popview_child, null);
TextView textView = (TextView) view.findViewById(R.id.titlename);
textView.setText(attendanceInfoModel.address);
InfoWindow.OnInfoWindowClickListener listener = new InfoWindow.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick() {
mBaiduMap.hideInfoWindow();
}
};
// 创建InfoWindow
InfoWindow mInfoWindow = new InfoWindow(view, mLatLng, 0);
// 显示InfoWindow
mBaiduMap.showInfoWindow(mInfoWindow);
}
/**
* 添加标注
*/
private void addOverlay() {
//这里以后可以做成动画效果
// ArrayList<BitmapDescriptor> giflist = new ArrayList<BitmapDescriptor>();
// giflist.add(BitmapDescriptorFactory.fromResource(R.drawable.ico_location_black));
// giflist.add(BitmapDescriptorFactory.fromResource(R.drawable.ico_location_arrow));
mBitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.ico_location_arrow);
OverlayOptions options = new MarkerOptions().position(mLatLng).icon(mBitmapDescriptor).zIndex(1).draggable(true);//设置:坐标-图标-z轴索引-可拖拽
mBaiduMap.addOverlay(options);
}
/**
* 设置中心点
*/
private void setCenterMap() {
//定义地图状态
MapStatus mMapStatus = new MapStatus.Builder().target(mLatLng).zoom(18).build();
//定义MapStatusUpdate对象,以便描述地图状态将要发生的变化
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
//改变地图状态
mBaiduMap.setMapStatus(mMapStatusUpdate);
}
private LatLng getLatLng() {
double logitude = 113.15;
double latitude = 23.06;
//定义文字所显示的坐标点
if (!TextUtils.isEmpty(attendanceInfoModel.longitude)) {
logitude = Double.parseDouble(attendanceInfoModel.longitude);
} else {
return null;
}
if (!TextUtils.isEmpty(attendanceInfoModel.latitude)) {
latitude = Double.parseDouble(attendanceInfoModel.latitude);
} else {
return null;
}
return new LatLng(latitude, logitude);
}
@Override
public 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();
}
}
</span>