高德地圖(一)之簡單集成

談集成方案,無非就是按照官方文檔搞一遍。這裏不多贅述,和別的博客差不多,都是直接貼過程。
我這裏使用Android Studio,不再使用添加jar包,so文件的方案了。直接通過Gradle來集成。

一、申請Key

聲明:該部分截圖來自官網
註冊完賬號,進入後臺,直接按照下圖進行。
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

關於SHA1值獲取,這裏只說通過CMD來獲取的方式:
進入key文件所在路徑,通過
keytool -list -v -keystore key名字
來獲取
如下圖:
這裏寫圖片描述

二、在Android Studio中集成

這裏僅通過gradle集成。個人感覺更快速方便。

  • app gradle文件
     //3D地圖
    compile 'com.amap.api:3dmap:latest.integration'
    // 定位功能
    compile 'com.amap.api:location:latest.integration'
    // 搜索功能
    compile 'com.amap.api:search:latest.integration'
    //2D地圖
    compile 'com.amap.api:map2d:latest.integration'
  • 清單文件
    <!--用於進行網絡定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
    <!--用於訪問GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <!--用於獲取運營商信息,用於支持提供運營商信息相關的接口-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    <!--用於訪問wifi網絡信息,wifi信息會用於進行網絡定位-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <!--用於獲取wifi的獲取權限,wifi信息會用來進行網絡定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    <!--用於訪問網絡,網絡定位需要上網-->
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <!--用於讀取手機當前的狀態-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <!--用於寫入緩存數據到擴展存儲卡-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <!--用於申請調用A-GPS模塊-->
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    <!--用於申請獲取藍牙信息進行室內定位-->
    <uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>

application裏面添加如下

<application ...>
  <!--高德地圖集成-->
        <!--高德地圖開始-->
        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="你申請的key"/>
        <service android:name="com.amap.api.location.APSService"></service>
        <!--高德地圖結束-->
 </application>
  • 代碼混淆
  3D 地圖 V5.0.0之前:
    -keep   class com.amap.api.maps.**{*;} 
    -keep   class com.autonavi.amap.mapcore.*{*;} 
    -keep   class com.amap.api.trace.**{*;}

    3D 地圖 V5.0.0之後:
    -keep   class com.amap.api.maps.**{*;} 
    -keep   class com.autonavi.**{*;} 
    -keep   class com.amap.api.trace.**{*;}

    定位
    -keep class com.amap.api.location.**{*;}
    -keep class com.amap.api.fence.**{*;}
    -keep class com.autonavi.aps.amapapi.model.**{*;}

    搜索
    -keep   class com.amap.api.services.**{*;}

    2D地圖
    -keep class com.amap.api.maps2d.**{*;}
    -keep class com.amap.api.mapcore2d.**{*;}

    導航
    -keep class com.amap.api.navi.**{*;}
    -keep class com.autonavi.**{*;}

注意:這裏要提醒一點是,申請key的時候如果只填寫了發佈版是SHA1值,個人建議在Gradle中添加下面的代碼,可以在debug中正常使用key

 buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.release//使用簽名文件
        }
    }

三、實現效果

基本配置完成了,剩下的就是在app裏展示地圖效果了

佈局

    <com.amap.api.maps.MapView
        android:id="@+id/map_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </com.amap.api.maps.MapView>```

代碼

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        mapView.onCreate(savedInstanceState);
        aMap = mapView.getMap();
     }

效果
只進行了初始化,並不能定位到你所在位置。

這裏寫圖片描述

更多請查看第二篇高德地圖(二)之顯示定位,比例尺和添加Marker

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章