一、获取高德平台key
【1】基于application包名&sha1值在高德控制台获取key值,详情参考: 获取Key-创建工程-开发指南-Android 地图SDK | 高德地图API
【2】在manifest中声明权限
【3】将拿到的key值在manifest中进行声明
<!--允许程序打开网络套接字-->
<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" />
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="xxxxxxxxxxxx" />
二、集成依赖
在app build.gradle文件中增加高德地图依赖
implementation("com.amap.api:3dmap:9.8.2")
三、显示地图
在xml文件中声明MapView控件,并在class中重写 onCreate 方法(此方法必须重写),注意生命周期的管理
<com.amap.api.maps.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
private var mapView: MapView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.test_activity)
mapView = findViewById(R.id.map)
mapView?.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
mapView?.onResume()
}
override fun onPause() {
super.onPause()
mapView?.onPause()
}
override fun onDestroy() {
super.onDestroy()
mapView?.onDestroy()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
mapView?.onSaveInstanceState(outState)
}
地图默认中心点为北京天安门
四、高德地图具体使用
以下对于地图的控制使用之前需要拿到AMap对象
map = mapView?.map
1、切换城市中心点
private fun moveCenterTo(latLng: LatLng) {
val cameraUpdate = CameraUpdateFactory.newLatLng(latLng)
map?.moveCamera(cameraUpdate)
}
Android高德地图切换城市中心点展示
2、设置缩放级别
moveCamera(CameraUpdateFactory.zoomTo(14.0f))