关闭

百度地图的初步接触

标签: 百度地图android
141人阅读 评论(0) 收藏 举报
程序所需资源  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是否能用



二丶下载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);
    }
}

 
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4087次
    • 积分:243
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:0篇
    • 译文:0篇
    • 评论:3条
    文章存档
    最新评论