【Android 百度地图实战】1.构建一个基础的地图页面

虽然很简单,但是还是有些细节要注意的,小错误搞死人啊,具体步骤官网API已提供,地址在这

效果图如下:

【Android 百度地图实战】1.构建一个基础的地图页面

 

主要代码:

【Android 百度地图实战】1.构建一个基础的地图页面
package yc.example.yc_ebaidumap;



import android.app.Activity;

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.MapController;

import com.baidu.mapapi.map.MapView;

import com.baidu.platform.comapi.basestruct.GeoPoint;



public class MainActivity extends Activity {

    BMapManager mBMapMan = null; // 加载地图引擎

    MapView mMapView = null;// 百度地图控件

    private final String strKey = "KcdoZxhbpGb6WcqcHej6fsms";// 百度地图的key



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        // 注意:请在试用setContentView前初始化BMapManager对象,否则会报错

        mBMapMan = new BMapManager(getApplication());

        // 必须加载key

        // 第一个参数- 申请的授权验证码,

        // 第二个参数 - 注册回调事件(常用事件监听,用来处理通常的网络错误,授权验证错误等,可为null)

        mBMapMan.init(strKey, new MKGeneralListener() {

            @Override

            public void onGetPermissionState(int iError) {// 返回授权验证错误

                // 非零值表示key验证未通过

                if (iError != 0) {

                    // 授权Key错误:

                    Toast.makeText(

                            getApplicationContext(),

                            "请确认授权Key是正确的,并检查您的网络连接是否正常!error: "

                                    + iError, Toast.LENGTH_LONG).show();

                } else {

                    Toast.makeText(getApplicationContext(), "key认证成功",

                            Toast.LENGTH_LONG).show();

                }

            }



            @Override

            public void onGetNetworkState(int iError) {// 返回网络错误

                if (iError == MKEvent.ERROR_NETWORK_CONNECT) {

                    Toast.makeText(getApplicationContext(), "您的网络出错啦!",

                            Toast.LENGTH_LONG).show();

                } else if (iError == MKEvent.ERROR_NETWORK_DATA) {

                    Toast.makeText(getApplicationContext(), "输入正确的检索条件!",

                            Toast.LENGTH_LONG).show();

                }

                // ...

            }

        });

        setContentView(R.layout.activity_main);

        mMapView = (MapView) findViewById(R.id.emapsView);

        // 设置启用内置的缩放控件

        mMapView.setBuiltInZoomControls(true);

        // 得到mMapView的控制权,可以用它控制和驱动平移和缩放

        MapController mMapController = mMapView.getController();

        // 用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6) - 这里是北京天安门

        GeoPoint point = new GeoPoint((int) (39.915 * 1E6),

                (int) (116.404 * 1E6));

        mMapController.setCenter(point);// 设置地图中心点

        mMapController.setZoom(12);// 设置地图zoom级别

    }



    @Override

    protected void onDestroy() {

        mMapView.destroy();

        if (mBMapMan != null) {

            mBMapMan.destroy();

            mBMapMan = null;

        }

        super.onDestroy();

    }



    @Override

    protected void onPause() {

        mMapView.onPause();

        if (mBMapMan != null) {

            mBMapMan.stop();

        }

        super.onPause();

    }



    @Override

    protected void onResume() {

        mMapView.onResume();

        if (mBMapMan != null) {

            mBMapMan.start();

        }

        super.onResume();

    }



}
MainActivity

 

PS:百度地图的授权key所属应用的安全码必须按照百度提供的方法配置哦

 

 

 

 

你可能感兴趣的:(android)