高德地图SDK Android版开发 1 配置
前言
本文主要介绍如何使用高德地图SDK开发Android地图应用。
准备工作:
申请高德地图密钥 入口
申请密钥 教程
下载地图开发包 入口
本文下载2D地图合包 AMap2DMap_6.0.0_AMapSearch_9.7.2_AMapLocation_6.4.5_20240508.aar
包名和版本信息:
- 2D地图SDK V6.0.0(包名:com.amap.api.map2d)
- 搜索SDK V9.7.2(包名:com.amap.api.search)
- 定位SDK V6.4.5(包名:com.amap.api.location)
包体积:1.40MB
更新时间:2024-05-13
主要步骤:
- 创建工程
- 配置地图开发包
- 显示地图
- 运行效果
步骤1 创建工程
- AndroidStudio 选择菜单
File
→New
→New Project...
,打开New Project
对话框; - 选择模板
Empty Views Activity
,单击Next
; - 项目参数参考如下,设置后,单击
Finish
;
参数 | 值 |
---|---|
Name | mapdemo |
Package name | com.example.mapdemo |
Save location | 默认路径或自定义路径即可 |
Language | Java |
Minimum SDK | 默认推荐即可 |
Build configuration language | Groovy DSL (build.gradle) |
- 至此创建项目完成,目录结构如下:
├── app
│ ├── build.gradle
│ ├── libs
│ ├── proguard-rules.pro
│ └── src
│ ├── androidTest
│ ├── main
│ └── test
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── local.properties
└── settings.gradle
步骤2 配置地图开发包
拷贝开发包
- 将下载的地图包解压,拷贝至
app/libs
目录。
app/libs
└── AMap2DMap_6.0.0_AMapSearch_9.7.2_AMapLocation_6.4.5_20240508.aar
配置jniLibs目录
- 文件
app/build.gradle
,配置sourceSets
标签。
android {
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
}
配置依赖
- 文件
app/build.gradle
,dependencies
中添加依赖项。
dependencies {
// 地图包依赖
implementation files('libs/AMap2DMap_6.0.0_AMapSearch_9.7.2_AMapLocation_6.4.5_20240508.aar')
}
配置开发密钥
- 文件
AndroidManifest.xml
,application
标签中,配置申请好的开发密钥。
<application>
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="开发者 key">
</meta-data>
</application>
地图权限配置
- 文件
AndroidManifest.xml
,manifest
标签中添加地图包定位、网络和存储的权限。
<manifest>
<!-- 允许程序访问CellID或WiFi热点来获取粗略的位置 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 允许程序打开网络套接字 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 允许程序获取网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 允许程序访问WiFi网络信息 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 允许程序设置内置sd卡的写权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
地图初始化
无
步骤3 显示地图
布局文件
activity_main.xml
中添加地图视图。
<com.amap.api.maps2d.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
地图Activity
MainActivity
管理地图视图生命周期。完整代码如下:
package com.example.mapdemo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.amap.api.maps2d.MapView;
public class MainActivity extends AppCompatActivity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = findViewById(R.id.map);
// 创建地图
mapView.onCreate(savedInstanceState);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 销毁地图
mapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
// 重新绘制加载地图
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
// 暂停地图的绘制
mapView.onPause();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// 保存地图当前的状态
mapView.onSaveInstanceState(outState);
}
}