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

来源:互联网 发布:淘宝暴利行业排行榜 编辑:程序博客网 时间:2024/05/16 15:48

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

原创粉丝点击