如何運(yùn)用百度地圖SDK進(jìn)行開發(fā)(一)初級篇

版本:BaiduSDK 2.12 (舊版本)(3.0以上版本由于昨天申請SDK總出問題以后再記錄)

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比元氏網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式元氏網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋元氏地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。

首先,來到百度地圖API首頁:http://developer.baidu.com/map/

開發(fā)--->Android開發(fā)--->Android地圖SDK,點(diǎn)進(jìn)去后,在左側(cè)有個(gè)導(dǎo)航欄,點(diǎn)擊 獲取密鑰,根據(jù)相關(guān)提示獲取key,開發(fā)中要用到,這里不過多講解。

點(diǎn)擊相關(guān)下載,下載最新的Android地圖SDK,解壓后獲得


往下看,點(diǎn)擊開發(fā)指南--->配置環(huán)境發(fā)布,找到Android Studio工程配置方法,根據(jù)提示進(jìn)行操作(這里由于講的是舊版本2.12,與新版本略有差別,所以我截圖下來)。

如何運(yùn)用百度地圖SDK進(jìn)行開發(fā)(一)初級篇

之后把jar包加入到項(xiàng)目中

如何運(yùn)用百度地圖SDK進(jìn)行開發(fā)(一)初級篇

如何運(yùn)用百度地圖SDK進(jìn)行開發(fā)(一)初級篇

2個(gè)jar包都要加入,之后軟件會(huì)自動(dòng)進(jìn)行編譯,等待編譯結(jié)束后就可以開始使用了。

代碼部分:

(1)在布局中添加組件

<?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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">


    <com.baidu.mapapi.map.MapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <Button
        android:id="@+id/btn_main_open"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="打開軟鍵盤"
        android:onClick="click"/>
</RelativeLayout>

(2)在配置文件中添加相關(guān)權(quán)限

<!-- gps -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- wifi -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 網(wǎng)絡(luò)的權(quán)限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 離線包 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 獲取手機(jī)信息 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

(2)在MainActivity中編寫代碼

public class MainActivity extends AppCompatActivity {
    /**
     * 百度地圖的引擎(管理地圖)
     */
    private BMapManager manager;
    /**
     * 顯示地圖信息的
     */
    private MapView mapView;
    /**
     * 控制地圖的:縮放、平移、旋轉(zhuǎn)
     */
    private MapController controller;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /**
         * 加載布局之前,首先初始化地圖的引擎
         */
        initManager();
        setContentView(R.layout.activity_main);
        /**
         * 初始化布局中的mapView
         */
        mapView = (MapView) findViewById(R.id.mapView);
        /**
         * 對控制器初始化
         */
        controller = mapView.getController();
        /**
         * 這里設(shè)置初始級別為顯示第12級(1.0版本是3-18級別,2.0版本開始3-19個(gè)級別)
         */
        controller.setZoom(19);
        /**
         * 這里設(shè)置默認(rèn)顯示的中心地帶(比如:116.312741(經(jīng)度),39.979111(緯度))
         */
        controller.setCenter(new GeoPoint(39979111, 116312741));
    }

    private void initManager() {
        manager = new BMapManager(this);
        manager.init(ContentsUtils.KEY, new MKGeneralListener() {
            /**
             * 獲取網(wǎng)絡(luò)工作狀態(tài)
             * @param isError  返回狀態(tài)
             */
            @Override
            public void onGetNetworkState(int isError) {
                if (isError == MKEvent.ERROR_NETWORK_CONNECT) {
                    Toast.makeText(getApplicationContext(), "網(wǎng)絡(luò)連接出錯(cuò)", Toast.LENGTH_SHORT).show();
                }
            }

            /**
             *獲取許可狀態(tài)
             * @param isError   返回狀態(tài)
             */
            @Override
            public void onGetPermissionState(int isError) {
                if (isError == MKEvent.ERROR_NETWORK_CONNECT) {
                    Toast.makeText(getApplicationContext(), "申請的key出錯(cuò)了", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }


    /**
     * 優(yōu)化
     */
    @Override
    protected void onResume() {
        super.onResume();
        mapView.onResume();
    }

    /**
     * 優(yōu)化
     */
    @Override
    protected void onPause() {
        super.onPause();
        mapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        /**
         * 該Activity銷毀的時(shí)候,把地圖顯示的view也銷毀掉,有助于優(yōu)化
         */
        mapView.destroy();
    }

    /**
     * 這里是根據(jù)按鍵做出相應(yīng)操作
     * @param keyCode
     * @param event
     * @return
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_1:
                mapView.setSatellite(false);
                mapView.setTraffic(false);
                break;
            case KeyEvent.KEYCODE_2:
                mapView.setSatellite(true);
                mapView.setTraffic(false);
                break;
            case KeyEvent.KEYCODE_3:
                mapView.setSatellite(false);
                mapView.setTraffic(true);

                break;
            default:

                break;
        }
        return super.onKeyDown(keyCode, event);
    }

    /**
     * 設(shè)置按鈕,控制軟鍵盤的打開與關(guān)閉
     *
     * @param view
     */
    public void click(View view) {
        Toast.makeText(MainActivity.this, "打開/關(guān)閉鍵盤", Toast.LENGTH_SHORT).show();
        openInputMethod();
    }

    /**
     * 調(diào)用軟鍵盤,打開/關(guān)閉
     */
    public void openInputMethod() {
        InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        if (imm.isActive()) {
            imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
        } else {
            getSystemService(Context.INPUT_METHOD_SERVICE);
        }

    }
}

說明:這里多加了一點(diǎn)功能,就是左上角加個(gè)按鈕,可以打開/關(guān)閉鍵盤,按鍵盤的1/2/3鍵,會(huì)分別顯示電子地圖/衛(wèi)星地圖/實(shí)時(shí)交通。其他相關(guān)操作,代碼作了相應(yīng)注釋。

運(yùn)行效果圖:

如何運(yùn)用百度地圖SDK進(jìn)行開發(fā)(一)初級篇

本文題目:如何運(yùn)用百度地圖SDK進(jìn)行開發(fā)(一)初級篇
當(dāng)前地址:http://www.muchs.cn/article10/iidgdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、App設(shè)計(jì)、靜態(tài)網(wǎng)站響應(yīng)式網(wǎng)站、網(wǎng)站排名、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司