关于百度地图的总结

来源:互联网 发布:黄金单身汉 知乎 编辑:程序博客网 时间:2024/06/05 21:11

近期在写百度地图这个项目的时候,自己的一些简单总结,以便日后方便。

1.配置百度地图开发环境

a) 下载开发包(http://developer.baidu.com/map/ )

b) 配置Demo(只需要一个key即可运行)

c) 配置自己的开发环境:按照开发指南进行配置

其中sha1的获取可以从eclipse获取,也可以通过dos中获取

1.1 cmd中进入到Android Virtual Devices目录

1.2 使用jdkkeytool工具获取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

百度地图核心类与方法

com.baidu.mapapi

SDKInitializer 初始化 SDK

com.baidu.mapapi.map  百度地图核心

MapView 显示地图的视图

Ø getMap(); 获取地图控制器

Ø addView(View, LayoutParams) MapViewLayoutParams,向MapView中添加一个子View,removeView(View)

Ø showScaleControl(boolean) 是否显示比例尺控件

Ø showZoomControls(boolean) 是否显示缩放控件

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) 截图

UiSettings百度地图 UI 控制器(是否允许指南针、俯视手势、旋转手势、拖拽手势、缩放手势)

MapStatus 定义地图状态

MapStatusUpdate 描述地图状态将要发生的变化

MapStatusUpdateFactory 生成地图状态将要发生的变化

Ø newLatLng(LatLng) 设置地图新中心点

Ø zoomIn() 放大地图缩放级别

Ø zoomOut() 缩小地图缩放级别

Ø zoomTo(float) 设置地图缩放级别

Ø newMapStatus(MapStatus) 设置地图新状态(俯仰、旋转、缩放、中心点等等)

n CircleOptions  创建圆形覆盖物的选项

n TextOptions  创建文字覆盖物的选项

n MarkerOptions  创建Marker覆盖的选项

n BitmapDescriptor  bitmap 描述信息

com.baidu.mapapi.model   JavaBean

LatLng 经伟度

LatLngBounds 地理范围:由西南、东北坐标组合起来的一个范围

com.baidu.mapapi.search.core  搜索核心
     

com.baidu.mapapi.search.poi  兴趣点搜索
     

com.baidu.mapapi.search.route 路线搜索
     

0 0