基本信息
源码名称:android 百度地图应用实例源码下载
源码大小:4.22M
文件格式:.rar
开发语言:Java
更新时间:2015-02-25
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
package com.example.baidumapdemo; import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.widget.Toast; import com.baidu.mapapi.BMapManager; import com.baidu.mapapi.MKGeneralListener; import com.baidu.mapapi.map.MKEvent; 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; public class MainActivity extends Activity{ private BMapManager mBMapManager; /** * MapView 是地图主控件 */ private MapView mMapView = null; /** * 用MapController完成地图控制 */ private MapController mMapController = null; private ScaleView mScaleView; private ZoomControlView mZoomControlView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //使用地图sdk前需先初始化BMapManager,这个必须在setContentView()先初始化 mBMapManager = new BMapManager(this); //第一个参数是API key, //第二个参数是常用事件监听,用来处理通常的网络错误,授权验证错误等,你也可以不添加这个回调接口 mBMapManager.init("CC61ac7527b65c95899608810873b173", new MKGeneralListener() { //授权错误的时候调用的回调函数 @Override public void onGetPermissionState(int iError) { if (iError == MKEvent.ERROR_PERMISSION_DENIED) { Toast.makeText(getApplication(), "API Key错误,请检查!", Toast.LENGTH_LONG).show(); } } //一些网络状态的错误处理回调函数 @Override public void onGetNetworkState(int iError) { if (iError == MKEvent.ERROR_NETWORK_CONNECT) { Toast.makeText(getApplication(), "您的网络出错啦!", Toast.LENGTH_LONG).show(); } } }); setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.bmapView); //隐藏自带的地图缩放控件 mMapView.setBuiltInZoomControls(false); mScaleView = (ScaleView) findViewById(R.id.scaleView); mScaleView.setMapView(mMapView); mZoomControlView = (ZoomControlView) findViewById(R.id.ZoomControlView); mZoomControlView.setMapView(mMapView); //地图显示事件监听器。 该接口监听地图显示事件,用户需要实现该接口以处理相应事件。 mMapView.regMapViewListener(mBMapManager, new MKMapViewListener() { @Override public void onMapMoveFinish() { refreshScaleAndZoomControl(); } @Override public void onMapLoadFinish() { } /** * 动画结束时会回调此消息.我们在此方法里面更新缩放按钮的状态 */ @Override public void onMapAnimationFinish() { refreshScaleAndZoomControl(); } @Override public void onGetCurrentMap(Bitmap arg0) { } @Override public void onClickMapPoi(MapPoi arg0) { } }); //获取地图控制器 mMapController = mMapView.getController(); //设置地图是否响应点击事件 . mMapController.enableClick(true); //设置地图缩放级别 mMapController.setZoom(14); refreshScaleAndZoomControl(); //保存精度和纬度的类, GeoPoint p = new GeoPoint((int)(22.547923 * 1E6), (int)(114.067368 * 1E6)); //设置p地方为中心点 mMapController.setCenter(p); } private void refreshScaleAndZoomControl(){ //更新缩放按钮的状态 mZoomControlView.refreshZoomButtonStatus(Math.round(mMapView.getZoomLevel())); mScaleView.refreshScaleView(Math.round(mMapView.getZoomLevel())); } @Override protected void onResume() { //MapView的生命周期与Activity同步,当activity挂起时需调用MapView.onPause() mMapView.onResume(); super.onResume(); } @Override protected void onPause() { //MapView的生命周期与Activity同步,当activity挂起时需调用MapView.onPause() mMapView.onPause(); super.onPause(); } @Override protected void onDestroy() { //MapView的生命周期与Activity同步,当activity销毁时需调用MapView.destroy() mMapView.destroy(); //退出应用调用BMapManager的destroy()方法 if(mBMapManager != null){ mBMapManager.destroy(); mBMapManager = null; } super.onDestroy(); } }