1 申请高德SDK
需要填写SHA1安全码&包名
文档解决方案
https://lbs.amap.com/faq/top/hot-questions/249
package name
获取build.gradle文件中的ApplicationId作为PackageName;如果没有设置ApplicationId,请以AndroidManifest.xml配置文件的package 属性为准:
未设置id,因此从Mainifast查找
SHA1
运行cmd输入命令
密钥口令默认为:android
(base) C:\Users\Administrator>cd .android
(base) C:\Users\Administrator\.android>keytool -list -v -keystore debug.keystore
输入密钥库口令:
密钥库类型: JKS
密钥库提供方: SUN
您的密钥库包含 1 个条目
别名: androiddebugkey
创建日期: 2019-3-5
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: C=US, O=Android, CN=Android Debug
发布者: C=US, O=Android, CN=Android Debug
序列号: 1
有效期开始日期: Tue Mar 05 12:55:47 CST 2019, 截止日期: Thu Feb 25 12:55:47 CST 2049
证书指纹:
MD5: BE:9E:95:AA:3E:E0:05:80:93:47:F3:91:45:48:C8:B8
SHA1: ***********************************************
SHA256: D1:19:FE:EE:82:CE:A2:86:FD:79:99:0B:C6:74:48:3F:1D:22:2C:20:37:F2:B5:B6:48:55:8C:01:90:97:27:F2
签名算法名称: SHA1withRSA
版本: 1
*******************************************
*******************************************
提交后得到key
key
2 导入高德SDK
使用最便捷的方式:通过Gradle集成SDK
此处以3d地图SDK、定位SDK、搜索功能为例:
在project的build.gradle中添加
allprojects {
repositories {
jcenter() // 或者 mavenCentral()
}
}
在app的build.gradle中添加
android {
defaultConfig {
ndk {
//设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//3D地图so及jar
compile 'com.amap.api:3dmap:latest.integration'
//定位功能
compile 'com.amap.api:location:latest.integration'
//搜索功能
compile 'com.amap.api:search:latest.integration'
}
报错
修改上述代码:把compile替换为implementation
在app的build.gradle中添加
android {
defaultConfig {
ndk {
//设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//3D地图so及jar
implementation' com.amap.api:3dmap:latest.integration'
//定位功能
implementation 'com.amap.api:location:latest.integration'
//搜索功能
implementation 'com.amap.api:search:latest.integration'
}
3 使用高德SDK
运行高德地图demo进行学习
下载完成后解压:
需要解决错误:
1.builed.gradle中implementation 取代compile
2.Manifest 中删除版本号
3.申请对应的key并放入Manifest
成功运行:3d,trade,navi三个部分,从中查找需要的代码进行修改使用
4 高德示例demo
主界面
可以看到进去以后是一个功能的列表模块,从主界面代码中就能找到对应功能的代码所在的文件了
程序入口为MainActivity,截取一部分程序展示
private static final DemoDetails[] demos = {
// 创建地图
new DemoDetails(R.string.map_create, R.string.blank, null),
// 显示地图
new DemoDetails(R.string.basic_map, R.string.basic_description,
BasicMapActivity.class),
// 显示地图
new DemoDetails(R.string.list_map, R.string.basic_description,
MapListViewActivity.class),
// 显示地图
new DemoDetails(R.string.recycle_map, R.string.basic_description,
RecycleViewActivity.class),
// 6种实现地图方式
new DemoDetails(R.string.basic_map_6, R.string.basic_description_temp,
MapImpMethodActivity.class),
// Fragment创建地图
// new DemoDetails(R.string.base_fragment_map, R.string.base_fragment_description,
// BaseMapSupportFragmentActivity.class),
// new DemoDetails(R.string.basic_texturemapview, R.string.basic_texturemapview_description,
// TextureMapViewActivity.class),
new DemoDetails(R.string.viewpager_map, R.string.viewpger_map_description,
ViewPagerWithMapActivity.class),
// 地图多实例
目前需要的是fragment中展示地图与定位,因此选择
6种实现地图方式
new DemoDetails(R.string.basic_map_6, R.string.basic_description_temp,
MapImpMethodActivity.class),