百度地图的初步接触

百度地图开发平台网址http://lbsyun.baidu.com/index.php?title=首页
程序所需资源  http://pan.baidu.com/s/1pLwGmMZ
代码框架


程序效果




一丶创建应用

创建一个新应用需要这三样东西,具体如何获得请往下看




获得 开发版SHA1    
出现输入秘钥口令后按下回车即可
复制SHA1YESHI1按下回车即可


开发版SHA1为    EA:F4:F3:B1:2E:F2:4B:16:87:82:96:75:68:D4:EC:CE:D9:23:8E:88

获得 发布版SHA1



用一个小程序可以非常方便的获得发布版SHA1

获得的信息如下

应用名 -> baiduMapDemo
版本号 -> 1.0(1)
包名 -> com.dubuwucool.baidumapdemo
SHA1 -> EA:F4:F3:B1:2E:F2:4B:16:87:82:96:75:68:D4:EC:CE:D9:23:8E:88
key(ak) ->

发布版SHA1为EA:F4:F3:B1:2E:F2:4B:16:87:82:96:75:68:D4:EC:CE:D9:23:8E:88
通常情况下发布版SHA1和开发版SHA1是一致的

获得包名com.dubuwucool.baidumapdemo
注意:用上一步的软件或清单文件都可以获取包名,但从gradle文件中获取更为稳妥



具体创建过程如下



完成后获得key值 a5dkzXGjAlMhVBzaDxxe4w6o0I4hMzYh

验证key是否能用



二丶下载sdk并进行相关配置

选择所需功能并下载



下载完成后解压,并将libs文件夹下的所有文件粘贴到程序下的libs文件夹


完成后在gradle文件进行修改



完成后点击右上角的同步,框架中出现jniLibs文件夹并且代码中有提示则导入成功



三丶创建MyApplication类

/**
  * function: 因为 sdk 各功能组件使用之前需要调用 SDKInitializer.initialize( 上线文 )
 *  所以把该方法放在 Application 的初始化方法中 , 新建一个类继承 Application
 *  并在清单文件进行配置 android:name=".MyApplication"
 *  之后覆写 onCreate 方法 , 进行初始化
  */
public class MyApplication  extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // 注册一个 key 验证是否是正确的广播所有者 , 我们在开发时经常有一些验证 , 比如验证网络等
        // 创建一个 BroadcastReceiver 的内部类
        BroadcastReceiver broadcastReceiver =  new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                // 得到系统传过来的 String
                String s = intent.getAction();
                // 创建空的字符串
                String msg =  null;
                // 判断字符串是否相同
                if (s.equals(SDKInitializer. SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK)) {
                    msg =  " 验证 key 成功 ";
                }  else if (s.equals(SDKInitializer. SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) {
                    msg =  " 验证 key 失败 ";
                }  else if (s.equals(SDKInitializer. SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) {
                    msg =  " 网络连接失败 ";
                }
                Toast. makeText(MyApplication. this, msg, Toast. LENGTH_SHORT).show();
            }
        };
        // 代码进行广播注册 , 也可在清单文件中注册
        IntentFilter filter =  new IntentFilter();
        // 添加过滤条件
        filter.addAction(SDKInitializer. SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR);
        filter.addAction(SDKInitializer. SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR);
        filter.addAction(SDKInitializer. SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK);

        // 进行广播注册
        registerReceiver(broadcastReceiver,filter);
          //初始化百度地图
        SDKInitializer. initialize(getApplicationContext());
    }
}
四丶修改清单文件
1.添加权限
2.配置MyApplication
3. 百度地图用到的Values值
<? xml version= "1.0"  encoding= "utf-8" ?>
< manifest  xmlns: android = "http://schemas.android.com/apk/res/android"
          package= "com.dubuwucool.baidumapdemo">
    < uses-permission  android :name= "com.android.launcher.permission.READ_SETTINGS" />
    <!--  这个权限用于进行网络定位  -->
    < uses-permission  android :name= "android.permission.ACCESS_COARSE_LOCATION" />
    <!--  这个权限用于访问 GPS 定位  -->
    < uses-permission  android :name= "android.permission.ACCESS_FINE_LOCATION" />
    <!--  用于访问 wifi 网络信息, wifi 信息会用于进行网络定位  -->
    < uses-permission  android :name= "android.permission.ACCESS_WIFI_STATE" />
    <!--  获取运营商信息,用于支持提供运营商信息相关的接口  -->
    < uses-permission  android :name= "android.permission.ACCESS_NETWORK_STATE" />
    <!--  用于读取手机当前的状态  -->
    < uses-permission  android :name= "android.permission.READ_PHONE_STATE" />
    <!--  写入扩展存储,向扩展卡写入数据,用于写入离线定位数据  -->
    < uses-permission  android :name= "android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--  访问网络,网络定位需要上网  -->
    < uses-permission  android :name= "android.permission.INTERNET" />
    < application
        android :allowBackup= "true"
        android :icon= "@mipmap/ic_launcher"
        android :label= "@string/app_name"
        android :supportsRtl= "true"
        android :theme= "@style/AppTheme"
       android:name=".MyApplication">     
          <!-- 这里的值就是创建应用时的 key -->
        < meta-data
            android :name= "com.baidu.lbsapi.API_KEY"
           android:value="a5dkzXGjAlMhVBzaDxxe4w6o0I4hMzYh
/>
        < activity  android :name= ".MainActivity">
            < intent-filter>
                < action  android :name= "android.intent.action.MAIN"/>

                < category  android :name= "android.intent.category.LAUNCHER"/>
            </ intent-filter>
        </ activity>
    </application>
</ manifest>

五丶主窗体布局及代码
<? xml version= "1.0"  encoding= "utf-8" ?>
< RelativeLayout
    xmlns: android = "http://schemas.android.com/apk/res/android"
    xmlns: tools = "http://schemas.android.com/tools"
    android :layout_width= "match_parent"
    android :layout_height= "match_parent"
    tools :context= "com.dubuwucool.baidumapdemo.MainActivity">
     <!--用来显示地图-->
   < com.baidu.mapapi.map.MapView
        android :id= "@+id/mapView"
        android :layout_width= "match_parent"
        android :layout_height= "match_parent"></ com.baidu.mapapi.map.MapView>
</ RelativeLayout>

主窗体代码
public class MainActivity  extends AppCompatActivity {

    private MapView  mapView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout. activity_main);
        initView();
        // 设置是否显示比例尺
        mapView.showScaleControl( false);
        // 设置是否显示缩放按钮
        mapView.showZoomControls( true);
    }

    private void initView() {
        mapView = (MapView) findViewById(R.id. mapView);
    }
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值