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…
结尾:当没有能力时,被动藏拙,怕被看出;当有能力时,被动藏拙,怕脱颖而出。人何时能做真正的本人