乐趣区

关于android:Android-集成高德地图

Android 集成高德地图

一:介绍
高德地图的集成对开发者来说很方面,也是越来越多的 app 的抉择。
二:账号与 Key 的申请
第一步:注册高德开发者(这就不用说了)
第二步:去控制台创立利用
https://console.amap.com/dev/…

第三步:获取 key

最初会获取到 key 值

怎么获取咱们利用的 sha1 值
cmd cd 到 cd C:\Java\jdk1.8.0_201\bin 到该目录下,这个目录是我寄存 jks 的目录,同理,你放的在哪里,就到哪里

keytool.exe -list -keystore C:\ 微信 \zhiyinsigned.jks
秘钥:本人设定明码(个别 123456)

keytool -list -v -keystore debug.keystore(加上一个 - v 能够获取到 Md5 值,这是一个 debug 模式下的值)
能够获取 MD5 码 SHA1 码 SHA256 码
三:下载高德 SDK

我这里 3D 地图开发
第一步:增加 jar 包
将下载的地图 SDK 的 jar 包复制到工程的 libs 目录下,如果有老版本 jar 包在其中,请删除

第二步:增加 so 库
阐明:3D 地图才须要增加 so 库,2D 地图无需这一步骤。

2D 地图解压进去只有一个 jar 包
如果在 main 下的 jniLibs 下增加 so 库就不须要配置什么,请看我之前的 https://segmentfault.com/a/11…
然而在 libs 下配置

android{


sourceSets {
    main {jniLibs.srcDirs = ['libs']
    }
}
}

第三步:ndk 配置

android{
defaultConfig {
  ndk {
            // 抉择要增加的对应 cpu 类型的.so 库。abiFilters 'armeabi-v7a'
        }
        }
        }

第四步:增加 jar 导入
通过 jar 右键 Add as library 就能够实现 jar 包导入
implementation files(‘libs\Android_Map3D_SDK_V8.0.0_20210713.jar’)
第二种办法

// 和 dependencies 同级别
 repositories {
    flatDir {dirs 'libs'}
}
dependencies {implementation(name:'Android_Map3D_SDK_V8.0.0_20210713',ext:'jar')
  }

四:我的项目下配置
第一步:在 AndroidManifest 下配置下 key 值

第二步:增加拜访权限

 <!-- 容许程序关上网络套接字 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 容许程序设置内置 sd 卡的写权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 容许程序获取网络状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 容许程序拜访 WiFi 网络信息 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!-- 容许程序读写手机状态和身份 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!-- 容许程序拜访 CellID 或 WiFi 热点来获取粗略的地位 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

第三步:简略应用布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <com.amap.api.maps.MapView
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>


</LinearLayout>

应用

public class SixTeenActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_six_teen);
        MapView mapView=findViewById(R.id.map);
        mapView.onCreate(savedInstanceState);// 此办法必须重写
        AMap aMap=mapView.getMap();}
}

这样集成算实现了,然而这种 jar 的集成
当初还有一种办法时 Gradle 集成 SDK
五:通过 Gradle 集成 SDK
之前向这样的 jar 包须要集成在我的项目的 libs 下

当初通过 Gradle 下编译
在主工程的 build.gradle 文件配置 dependencies
依据我的项目需要增加 SDK 依赖。引入各个 SDK 性能最新版本,dependencies 配置形式如下:

SDK 增加引入
3D 地图 implementation ‘com.amap.api:3dmap:8.0.0’
2D 地图 implementation ‘com.amap.api:map2d:6.0.0’
导航 implementation ‘com.amap.api:navi-3dmap:8.0.0’
搜寻 implementation ‘com.amap.api:search:7.9.0’
定位 implementation ‘com.amap.api:location:5.3.0’
dependencies {
    //3D 地图 so 及 jar
    implementation 'com.amap.api:3dmap:8.0.0'
    //2D 地图 so 及 jar
//    implementation 'com.amap.api:map2d:6.0.0'
    // 定位性能
//    implementation 'com.amap.api:location:5.3.0'
    // 搜寻性能
    implementation 'com.amap.api:search:7.9.0'
    }

这种 Gradle 的引入不须要增加 jar 包和 so 库了更加简便了操作
1. 按照上述办法引入 SDK 当前,不须要在 libs 文件夹下导入对应 SDK 的 so 和 jar 包,会有抵触。
2.navi 导航 SDK 5.0.0 当前版本蕴含了 3D 地图 SDK,所以请不要同时引入 map3d 和 navi SDK。

具体开发的实现须要参考开发文档去实现,这里实现的是集成
https://lbs.amap.com/api/andr…

结尾:当没有能力时,被动藏拙,怕被看出;当有能力时,被动藏拙,怕脱颖而出。人何时能做真正的本人

退出移动版