百度地图+安卓SDK开发学习之百度地图初始化

本文介绍如何使用百度地图API进行Android应用开发,包括注册账号、获取密钥、集成SDK及实现基本的地图显示等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        由于毕业设计是使用安卓开发,所以不得不开始学习安卓,另外由于用到路径搜索等功能,不得不使用地图的功能,但是google地图常常被和谐,而现在百度地图API也开放着,并且百度地图更适合本土程序的开发,虽然精确的米数还没到很精确(据说北斗正尝试着精确到8米以内)。今天在这里记下百度地图开发的一些过程,一来与大家分享,因为网上现在关于百度地图API开发的资源还是比较少的。二来是记录下自己的学习过程,以防以后忘了,还能复习复习。

       我的开发环境:eclipse(ADT v22.2.1)+BaiduMap_AndroidSDK_v2.3.0

       1.注册百度账号,最好是英文的,防止中文无法解析的情况,注册地址:https://passport.baidu.com/v2/?reg&regType=1&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F 

        2.下载百度地图AndroidSDK,如果应用程序需要有定位功能,还要下载定位的SDK,下载地址:http://developer.baidu.com/map/sdkandev-download.htm    下载完成后直接解压即可

        3.申请密钥,点击申请密钥后,点击创建应用,添加你的新的密钥,每个密钥对应一个应用程序,这个密钥是跨平台的。

          需要注意的几点是:

         A.应用名称:需要使用百度地图API的应用名称

         B.应用类型:Android开发选择for mobile

         C.安全码:组成(数字签名;报名) 

         获取数字签名的方法:

        1.打开eclipse,点击windows---preferences--android--build,打开后其中的SHA1即是你的数字签名

        2.打开cmd,进入你的安卓adt目录下的android文件夹下,敲入命令:

           keytool -list -v -keystore keystorefile-storepass android

           默认密码是android,回车后可以看到显示了SHA1的值,即是你的数字签名

          获得数字签名后加上你的包名,记得中间用分号隔开,填入你创建密钥的对话框中即可。此时你的key已经配置完成。

      

      4.写出自己第一个百度地图的hello world例子

         第一步:首先去百度地图API官网的密钥管理中去设置与你的应用对应的密钥,因为百度地图API要求每个应用程序对应一个密钥。

         第二步:将baidumapapiv2.30.jar放入你的应用程序的libs文件夹下,将libBaiduMapSDK_v2_3_0.so放入libs中的armeabi文件夹中。

         第三步:建立自己的MyMapActivity类,添加如下代码:

import android.app.Activity; 

import android.content.Intent;

importandroid.content.res.Configuration; 

import android.graphics.Bitmap;

import android.os.Bundle; 

import android.view.Menu; 

import android.widget.FrameLayout; 

import android.widget.Toast; 

import com.baidu.mapapi.BMapManager; 

import com.baidu.mapapi.map.MKMapViewListener; 

importcom.baidu.mapapi.map.MapController; 

import com.baidu.mapapi.map.MapPoi; 

import com.baidu.mapapi.map.MapView; 

importcom.baidu.platform.comapi.basestruct.GeoPoint; 

  

public class MyMapActivity extendsActivity{ 

      

       BMapManagermBMapMan = null; 

       MapViewmMapView = null; 

       privatestatic String strkey="B4081aa55f954e29df90febb326cb5f5";

       @Override 

       public void onCreate(Bundle savedInstanceState){ 

              super.onCreate(savedInstanceState); 

               mBMapMan=newBMapManager(getApplication()); 

              mBMapMan.init(strkey,null);   

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

              setContentView(R.layout.activity_main); 

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

              mMapView.setBuiltInZoomControls(true); 

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

              MapControllermMapController=mMapView.getController(); 

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

              GeoPoint point =newGeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6)); 

              //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 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(); 

       } 

}  

第四步:给你的工程的AndroidManifest.xml文件中添加如下代码:

具体需要使用哪些权限自己选择。

 <!--使用网络功能所需权限  --> 

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"> 

</uses-permission> 

<uses-permission android:name="android.permission.INTERNET"> 

</uses-permission> 

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"> 

</uses-permission> 

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"> 

</uses-permission> 

<!-- SDK离线地图和cache功能需要读写外部存储器 --> 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"> 

</uses-permission> 

<!-- 获取设置信息和详情页直接拨打电话需要以下权限  --> 

<uses-permission android:name="android.permission.READ_PHONE_STATE"> 

</uses-permission> 

<uses-permission android:name="android.permission.CALL_PHONE"> 

</uses-permission> 

 

下面这个权限必须有,否则mapManager初始化失败

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

 

接着在<application>中添加如下代码,这点非常重要,否则mapManager初始化失败

 <service android:name="com.baidu.location.f" android:enabled="true"android:process=":remote"> </service>

 

第五步:在activity_main.xml文件中添加mapView控件,具体如下:

<com.baidu.mapapi.map.MapView android:id="@+id/bmapView"

    android:layout_width="fill_parent"android:layout_height="fill_parent"

    android:clickable="true"     />

 

第六步:运行你的应用程序。

        


        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值