MapView的基本用法
2013-11-07 11:57
549 查看
package baidumapsdk.demo; import android.R; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.widget.Toast; import com.baidu.mapapi.BMapManager; import com.baidu.mapapi.map.MKMapViewListener; import com.baidu.mapapi.map.MapController; import com.baidu.mapapi.map.MapPoi; import com.baidu.mapapi.map.MapView; import com.baidu.platform.comapi.basestruct.GeoPoint; /** * 演示MapView的基本用法 */ public class BaseMapDemo extends Activity { final static String TAG = "MainActivity"; /** * MapView 是地图主控件 */ private MapView mMapView = null; /** * 用MapController完成地图控制 */ private MapController mMapController = null; /** * MKMapViewListener 用于处理地图事件回调 */ MKMapViewListener mMapListener = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /** * 使用地图sdk前需先初始化BMapManager. * BMapManager是全局的,可为多个MapView共用,它需要地图模块创建前创建, * 并在地图地图模块销毁后销毁,只要还有地图模块在使用,BMapManager就不应该销毁 */ DemoApplication app = (DemoApplication)this.getApplication(); if (app.mBMapManager == null) { app.mBMapManager = new BMapManager(this); /** * 如果BMapManager没有初始化则初始化BMapManager */ app.mBMapManager.init(DemoApplication.strKey,new DemoApplication.MyGeneralListener()); } /** * 由于MapView在setContentView()中初始化,所以它需要在BMapManager初始化之后 */ setContentView(baidumapsdk.demo.R.layout.activity_main); mMapView = (MapView)findViewById(baidumapsdk.demo.R.id.bmapView); /** * 获取地图控制器 */ mMapController = mMapView.getController(); /** * 设置地图是否响应点击事件 . */ mMapController.enableClick(true); /** * 设置地图缩放级别 */ mMapController.setZoom(12); /** * 将地图移动至指定点 * 使用百度经纬度坐标,可以通过http://api.map.baidu.com/lbsapi/getpoint/index.html查询地理坐标 * 如果需要在百度地图上显示使用其他坐标系统的位置,请发邮件至mapapi@baidu.com申请坐标转换接口 */ GeoPoint p ; double cLat = 39.945 ; double cLon = 116.404 ; Intent intent = getIntent(); if ( intent.hasExtra("x") && intent.hasExtra("y") ){ //当用intent参数时,设置中心点为指定点 Bundle b = intent.getExtras(); p = new GeoPoint(b.getInt("y"), b.getInt("x")); }else{ //设置中心点为天安门 p = new GeoPoint((int)(cLat * 1E6), (int)(cLon * 1E6)); } mMapController.setCenter(p); /** * MapView的生命周期与Activity同步,当activity挂起时需调用MapView.onPause() */ mMapListener = new MKMapViewListener() { @Override public void onMapMoveFinish() { /** * 在此处理地图移动完成回调 * 缩放,平移等操作完成后,此回调被触发 */ } @Override public void onClickMapPoi(MapPoi mapPoiInfo) { /** * 在此处理底图poi点击事件 * 显示底图poi名称并移动至该点 * 设置过: mMapController.enableClick(true); 时,此回调才能被触发 * */ String title = ""; if (mapPoiInfo != null){ title = mapPoiInfo.strText; Toast.makeText(BaseMapDemo.this,title,Toast.LENGTH_SHORT).show(); mMapController.animateTo(mapPoiInfo.geoPt); } } @Override public void onGetCurrentMap(Bitmap b) { /** * 当调用过 mMapView.getCurrentMap()后,此回调会被触发 * 可在此保存截图至存储设备 */ } @Override public void onMapAnimationFinish() { /** * 地图完成带动画的操作(如: animationTo())后,此回调被触发 */ } /** * 在此处理地图载完成事件 */ @Override public void onMapLoadFinish() { Toast.makeText(BaseMapDemo.this, "地图加载完成", Toast.LENGTH_SHORT).show(); } }; mMapView.regMapViewListener(DemoApplication.getInstance().mBMapManager, mMapListener); } @Override protected void onPause() { /** * MapView的生命周期与Activity同步,当activity挂起时需调用MapView.onPause() */ mMapView.onPause(); super.onPause(); } @Override protected void onResume() { /** * MapView的生命周期与Activity同步,当activity恢复时需调用MapView.onResume() */ mMapView.onResume(); super.onResume(); } @Override protected void onDestroy() { /** * MapView的生命周期与Activity同步,当activity销毁时需调用MapView.destroy() */ mMapView.destroy(); super.onDestroy(); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mMapView.onSaveInstanceState(outState); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); mMapView.onRestoreInstanceState(savedInstanceState); } }
相关文章推荐
- MapView 和 MapActivity 基本用法
- MFC基本常用控件基本用法
- ORM greenDAO基本用法
- iOS学习笔记-026.UITableView的基本用法
- UIButton基本用法
- Android 操作SQLite基本用法
- SASS学习——SASS的基本用法
- Android属性动画完全解析(上),初识属性动画的基本用法
- TortoiseSVN基本用法
- iOS CoreData的基本用法
- SQL Cursor 基本用法
- SQL语句中where 1=1的基本用法
- [讲课]2-8 串的基本用法
- Volley的基本用法
- Spring中Bean的基本用法
- Java LinkedList基本用法
- Pinyin4j的基本用法
- Paint基本用法
- oralcle中的性能统计基本用法statpack
- DuiLib::CTreeViewUI 的基本用法