Android地图添加标记和文字【代码片段】
16lz
2021-12-11
Android百度地图SDK版本:5.2
1.创建并在项目中配置好AK;
2.Application中初始化地图组件:SDKInitializer.initialize(mContext);
3.自己页面中使用如下:
/** * 考勤详细页 * 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 photosList = new ArrayList();//照片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 giflist = new ArrayList();// 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(); }}
更多相关文章
- Android(安卓)8.0 设置默认闹钟提示音或者默认通知提示音
- android学习轨迹之二:Android权限标签uses-permission的书写位置
- android EditText使用指南
- android 设置桌面背景
- Android中万能适配器
- Android(安卓)Studio(十):添加assets目录
- Android(安卓)下拉刷新控件SwipeRefreshLayout结合WebView使用
- Android中imageView图片放大缩小及旋转功能示例代码
- Android中PopupWindow用法