android开发游记:百度地图SDK基础地图的使用

上篇讲到使用百度定位SDK来获取当前经纬坐标和地理名称,这一篇主要讲下如何引入地图功能到自己项目,下一篇会实现路线规划和自定义图层展示的功能,同时包括地图视野缩放旋转视野跟随等功能。

这里写图片描述

使用百度地图SDK必须去官网注册开发者账号并申请key,如果使用百度定位已经有key了,那么不用再创建新的key了,只需要进入自己的应用管理页面设置key支持地图功能就行了,下面传送门:
http://lbsyun.baidu.com/apiconsole/key

百度地图官方说明文档:
http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap

百度地图SDK官方下载地址:
BaiduLBS_AndroidSDK_Sample
其中包含有百度官方提供的demo,官方demo相当详细且更新很及时,不要再在csdn上花积分去下载别人的demo

官方文档把接入方法写的很详细,推荐直接看文档,我只总结一下容易出错的地方和遇到的问题:

首先,导入地图类库,百度地图自3.6以后,采取了分包的策略来管理,把不同的功能分为不同的包,所以这就直接导致以前6个类库和包一下子扩增到现在的36个,不够大小并没有因为分包而变大,还可以根据自己的需要删减,其实更加实用了。

下面分别是3.6的类库,和3.5的类库,你们感受一下:
这里写图片描述 3.5

还是照文档中的全部导入,注意,百度地图的demo中已经包含了百度定位SDK的包,如果使用了其他三方提供的定位或者已经集成了定位功能了,就只导入上面图里带“baidumap”字样的包,凡是带”loc”字样的都是定位相关。定位也是地图中不可或缺的功能,如果使用了百度地图那也推荐使用百度定位sdk。

导入包之后,然后设置AndroidManifest.xml文件并添加相应权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

使用百度地图SDK必须去官网注册开发者账号并申请key,如果使用百度定位已经有key了,只需要进入自己的应用管理页面设置key支持地图功能就行了(官方推荐全部都勾上):
这里写图片描述

把申请到的key填入AndroidManifest.xml文件中
<application>节点下添加key常量:

    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="开发者 key" />

配置完成了,接下来在你需要用于展示地图的Activity的布局中,添加如下布局:

<com.baidu.mapapi.map.MapView  
    android:id="@+id/bmapView"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:clickable="true" />

和定位SDK一样,在使用之前必须先初始化:

SDKInitializer.initialize(getApplicationContext());

依然推荐写在Application中:

public class MyApplication extends Application {
    public LocationClient mLocationClient;
    @Override
    public void onCreate() {
        super.onCreate();
        //baidu loc
        mLocationClient = new LocationClient(this.getApplicationContext());
        //baidumap 在使用 SDK 各组间之前初始化 context 信息,传入 ApplicationContext
        SDKInitializer.initialize(this);
    }
}

最后在onCreate等各个生命周期回调相应的地图生命周期方法:

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.activity_main);  
        mMapView = (MapView) findViewById(R.id.bmapView);  
    }  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        mMapView.onDestroy();  
    }  
    @Override  
    protected void onResume() {  
        super.onResume();   
        mMapView.onResume();  
        }  
    @Override  
    protected void onPause() {  
        super.onPause();  
        mMapView.onPause();  
        }  

这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值