百度地图的集成

首先给出SDK的下载地址


下载SDK:http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download

然后我们要选择自定义下载 

下载的功能如图,也可以按照自己的需求去下载功能模块

百度地图的集成_第1张图片

然后我们要创建百度地图应用:

百度地图的集成_第2张图片


SHA 1值我们可以这样获取

打开studio右侧上角的Gradle点击

百度地图的集成_第3张图片

鼠标双击,会获得sha1值,

百度地图的集成_第4张图片


包名的话我们可以在自己的build.gradle下获取。

这样我们的应用就创建好了。


(注意,自SDK升级到3.0后,一个百度地图的key对应一个PAK,不能是一对多或者多对一的)

落后的SDK3.3版本的问题:SDK只能给CPU是arm的手机用,手机CPU时Intel就没法用(联想的一些手机就不能运行我们的程序),现在的版本可以了,底层是C来写

落后的SDK3.7版本的问题:百度地图提供的地图模块里有关放大缩小的Button按钮,在小屏幕手机里,显得格外大,适配没有做好.

百度地图的集成_第5张图片


我们可以看到他的按钮有一些不美观。


从网上下载好,百度提供的model后,要正常使用,要到清单配置文件,配置key属性,是从百度控制台获取,发布版签名从定制app上获取.


百度地图的集成_第6张图片


如图一个AS是studio的   然后一个是eclipse   这里我们选用自己的工具匹配的。(我得是studio)


1.在这里我选用的是百度地图demo里使用的集成方式

百度地图的集成_第7张图片

将下载好的Demo的libs包的东西导入自己的工程


2.在项目build.gradle文件android{}内,配置下面一段代码,同步一下gradle文件.

sourceSets {
    main {
        jniLibs.srcDir 'libs'
    }
}


上述全部做完后,在AndroidManifest中添加开发密钥、所需权限等信息; 

(1)在application中添加开发密钥 


                      这个key是在百度控制台配置得到的key,具体可以看0.0百度地图密钥申请



(2)添加所需权限






















(3)因为在SDK各功能组件使用之前都需要调用SDKInitializer.initialize(getApplicationContext());故我们把该方法放在Application的初始化方法中,新建一个类继承Application,初始化SDKInitializer,进行广播的配置,并在清单配置文件中application配置name属性.属性名就是这个我们新建类名.

public class MyApp extends Application {
    @Override
    public void onCreate() {
        // 注册一个key验证是否正确的广播所者,我们在开发APP时,经常有一些验证,比如网络等,具体流程如下
        //创建一个BroadcastReceiver的内部类,
        BroadcastReceiver receiver = new BroadcastReceiver() {
            //复写其必须有的方法onReceive,第一个参数上下文,第二个参数是传过来的intent.
            public void onReceive(Context context, Intent intent) {
                //参数intent.getAction得到发送过来的Intent里的action动作
                String action = intent.getAction();
                //创建一个null的字符串.
                String msg = "";
                //进行检查,if判断字符串是否相同,action.equals(),直接用SDKInitializer.SDK_BROADTCAST_ACTION_ST...就可以了
                if (action.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK)) {
                    msg = "Key验证成功!";
                }//判断SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR :验证失败
                else if (action.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) {
                    msg = "Key验证失败!";
                }//判断SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR :网络错误
                else if (action.equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) {
                    msg = "网络错误";
                }
                //弹吐司,内容就是字符串.
                Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
            }
        };
        //代码进行广播的注册配置,也可以在清单配置文件里进行配置
        IntentFilter filter = new IntentFilter();
        //添加过滤条件,IntentFilter对象.addAction();内容就是SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_....
        filter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK);
        filter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR);
        filter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR);
        //进行广播注册,1.要注册广播类对象 2配置文件IntentFilter对象.
        registerReceiver(receiver, filter);

        // 初始化百度地图SDK
        SDKInitializer.initialize(getApplicationContext());
    }
}
 

清单文件的配置(初始化注册)

android:name=".MyApp"

以上就完成了一个百度地图SDK集成到项目中的全部操作.


然后我们要进行布局以及代码的操作。

1.在布局xml文件中添加地图控件

2.创建地图Activity,管理地图生命周期

public class MainActivity extends AppCompatActivity {
private MapView mMapView;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//这里我没有调用SDKInitializer.initialize(getApplicationContext());因为在自定义的application的oncreate里已经定义了.

setContentView(R.layout.activity_main);

//控件初始化
initView();


//获取对MapVIew的控制类BaiduMap

BaiduMap map = mMapView.getMap();

//1.0,使用MapVIew对象,控制是否显示MapVIew上面的按钮
//设置不显示比例尺控件    该方法的参数是boolen,false是不显示缩放控件
mMapView.showScaleControl(false);
//设置不显示缩放控件    该方法的参数是boolen,false是不显示比例尺控件
 mMapView.showZoomControls(false);

}

private void initView() {

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

 }

@Override
protected void onDestroy() {
super.onDestroy();

//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView = null;

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();

 }

}

以上会完成了它的一个效果

然后我么会发现它没有缩放的按钮。百度地图的集成_第8张图片

如注释,这两行代码就是设置的按钮,我们可以把他()中的值改为true,就可以显示图片了





完成




你可能感兴趣的:(百度地图的集成)