高德地图(一)之简单集成

谈集成方案,无非就是按照官方文档搞一遍。这里不多赘述,和别的博客差不多,都是直接贴过程。
我这里使用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

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