近期在写百度地图这个项目的时候,自己的一些简单总结,以便日后方便。
1.配置百度地图开发环境
a) 下载开发包(http://developer.baidu.com/map/ )
b) 配置Demo(只需要一个key即可运行)
c) 配置自己的开发环境:按照开发指南进行配置
其中sha1的获取可以从eclipse获取,也可以通过dos中获取
1.1 在cmd中进入到Android Virtual Devices目录
1.2 使用jdk的keytool工具获取sha1指纹,输入keytool -list -v -keystore debug.keystore ,debug.keystore的密钥库口令默认为“android”
2.抽取BaseActivity
为什么要抽取BaseActivity:
2.1 处理共同的操作,避免代码重复
2.2 代码规范(方便阅读,真实开发80%的时间都是在阅读代码)
2.3 可以提供一些常用变量、方法(方便调用,避免代码重复)
其中baseActivity的代码如下:package com.nizk.baidumap74;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.model.LatLng;
import com.nizk.baidumap74.utils.Utils;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public abstract class BaseActivity extends Activity {
private static final String TAG = "BaseActivity";
/** 怡常苑坐标(肖家河街70号)104.050499,30.63745*/
protected LatLng xjhPos = new LatLng(30.63745, 104.050499);
/** 犀浦地铁站坐标 103.978059,30.763697*/
protected LatLng xpPos = new LatLng(30.763697,103.978059);
/** 春熙路坐标 104.086071,30.659316 */
protected LatLng cxlPos = new LatLng(30.659316,104.086071);
public MapView mMapView;
public BaiduMap baiduMap;
//这里加final是为了不让子类覆盖,原因是为了预防这里的一些类还没有初始化就被子类调用
@Override
protected final void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1.获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
//2.获取地图控制器
baiduMap = mMapView.getMap();
float maxZoomLevel = baiduMap.getMaxZoomLevel();
float minZoomLevel = baiduMap.getMinZoomLevel();
Log.d(TAG, " minZoomLevel"+ minZoomLevel+",maxZoomLevel "+ maxZoomLevel);
//3.设置地图中心点为肖家河
MapStatusUpdate mapStatusUpdate =MapStatusUpdateFactory.newLatLng(xjhPos);
baiduMap.setMapStatus(mapStatusUpdate);
//4.设置地图缩放为15
mapStatusUpdate =MapStatusUpdateFactory.zoomTo(15);
baiduMap.setMapStatus(mapStatusUpdate);
//6.获取地图Ui控制器:隐藏指南针
// UiSettings uiSettings = baiduMap.getUiSettings();
// uiSettings.setCompassEnabled(false);
init();
}
/**这个方法让子类实现*/
public abstract void init();
/**
* 在屏幕中央显示一个toast
* @param text
*/
public void showToast(CharSequence text){
Utils.showToast(this,text);
}
@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();
}
}
3
百度地图核心类与方法
l com.baidu.mapapi
n SDKInitializer 初始化 SDK
l com.baidu.mapapi.map 百度地图核心
n MapView 显示地图的视图
Ø getMap(); 获取地图控制器
Ø addView(View, LayoutParams) MapViewLayoutParams,向MapView中添加一个子View,removeView(View)
Ø showScaleControl(boolean) 是否显示比例尺控件
Ø showZoomControls(boolean) 是否显示缩放控件
n BaiduMap 专门操作MapView
Ø setMapStatus(MapStatusUpdate) 更新地图状态
Ø animateMapStatus(MapStatusUpdate) 以动画的方式更新地图状态
Ø getMapStatus() 获取地图的当前状态
Ø addOverlay(OverlayOptions) 向地图添加一个 Overlay
Ø clear() 清空地图上所有的自定义覆盖物
Ø setOnMarkerClickListener(BaiduMap.OnMarkerClickListener) 设置地图 Marker 覆盖物点击事件监听器
Ø setOnMarkerDragListener(BaiduMap.OnMarkerDragListener) 设置 Marker 拖拽事件监听者
Ø setMapType(int) 设置地图类型:普通图、卫星图
Ø setTrafficEnabled(boolean) 是否打开交通图层
Ø getMaxZoomLevel() 获取地图最大缩放级别
Ø getMinZoomLevel() 获取地图最小缩放级别
Ø getUiSettings() 获取地图ui控制器,可控制是否允许旋转、缩放、俯仰、拖拽等手势,是否允许指南针
Ø setMyLocationEnabled(boolean) 设置是否允许定位图层
Ø setMyLocationConfigeration(MyLocationConfiguration) 设置定位图层配置信息,只有先允许定位图层后设置定位图层配置信息才会生效
Ø setMyLocationData(MyLocationData) 设置定位数据, 只有先允许定位图层后设置数据才会生效
Ø snapshot(BaiduMap.SnapshotReadyCallback) 截图
n UiSettings百度地图 UI 控制器(是否允许指南针、俯视手势、旋转手势、拖拽手势、缩放手势)
n MapStatus 定义地图状态
n MapStatusUpdate 描述地图状态将要发生的变化
n MapStatusUpdateFactory 生成地图状态将要发生的变化
Ø newLatLng(LatLng) 设置地图新中心点
Ø zoomIn() 放大地图缩放级别
Ø zoomOut() 缩小地图缩放级别
Ø zoomTo(float) 设置地图缩放级别
Ø newMapStatus(MapStatus) 设置地图新状态(俯仰、旋转、缩放、中心点等等)
n CircleOptions 创建圆形覆盖物的选项
n TextOptions 创建文字覆盖物的选项
n MarkerOptions 创建Marker覆盖的选项
n BitmapDescriptor bitmap 描述信息
l com.baidu.mapapi.model JavaBean
n LatLng 经伟度
n LatLngBounds 地理范围:由西南、东北坐标组合起来的一个范围
l com.baidu.mapapi.search.core 搜索核心
l com.baidu.mapapi.search.poi 兴趣点搜索
com.baidu.mapapi.search.route 路线搜索