腾讯地图SDKAndroid版开发 1 配置
前言
本文主要介绍如何使用百度地图SDK开发Android地图应用。
准备工作:
申请腾讯地图key 入口
申请Key 教程
下载地图开发包 入口
本文下载版本 2024-04-30 TencentMapSDK_3D_v5.6.0
主要步骤:
- 创建工程
- 配置地图开发包
- 显示地图
- 运行效果
步骤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 | 默认推荐即可 |
- 至此创建项目完成,目录结构如下:
├── 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/
├── arm64-v8a
│ ├── libtmsqmp.so
│ ├── libtxmapengine.so
│ └── libtxmapvis.so
├── armeabi
│ ├── libtmsqmp.so
│ ├── libtxmapengine.so
│ └── libtxmapvis.so
├── armeabi-v7a
│ ├── libtmsqmp.so
│ ├── libtxmapengine.so
│ └── libtxmapvis.so
├── x86
│ ├── libtmsqmp.so
│ ├── libtxmapengine.so
│ └── libtxmapvis.so
├── x86_64
│ ├── libtmsqmp.so
│ ├── libtxmapengine.so
│ └── libtxmapvis.so
└── tencent-mapsdk-android-official-release.5.6.0.238fee88.jar
配置jniLibs目录
- 文件
app/build.gradle
,配置sourceSets
标签。
android {
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
}
配置依赖
- 文件
app/build.gradle
,dependencies
中添加依赖项。
dependencies {
// 地图包依赖
implementation files('libs/tencent-mapsdk-android-official-release.5.6.0.238fee88.jar')
}
配置开发密钥(AK)
- 文件
AndroidManifest.xml
,application
标签中,配置申请好的开发密钥(AK)。
<application>
<meta-data
android:name="TencentMapSDK"
android:value="开发者 key" />
</application>
地图权限配置
- 文件
AndroidManifest.xml
,manifest
标签中添加地图包网络和存储的权限。
<manifest>
<!--访问网络获取地图服务-->
<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" />
<!--需要外部存储写权限用于保存地图缓存-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--获取 device id 辨别设备-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
</manifest>
地图初始化
- 自定义
Application
类; - 在
AndroidManifest.xml
中声明该Application
类; - 隐私合规接口,初始化地图,设置坐标类型。
DemoApp
类完整代码如下:
package com.example.mapdemo;
import android.app.Application;
import com.tencent.tencentmap.mapsdk.maps.TencentMapInitializer;
public class DemoApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
/**
* 设置用户是否同意隐私协议
* 需要在初始化地图之前完成,传入true后才能正常使用地图功能
* @param isAgree 是否同意隐私协议
*/
TencentMapInitializer.setAgreePrivacy(true);
}
}
- 文件
app/build.gradle
,application
中配置自定义Application
类。
<application
android:name=".DemoApp"
>
</application>
步骤3 显示地图
布局文件
activity_main.xml
中添加地图视图。
<com.tencent.tencentmap.mapsdk.maps.TextureMapView
android:id="@+id/mapview"
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.tencent.tencentmap.mapsdk.maps.TextureMapView;
public class MainActivity extends AppCompatActivity {
TextureMapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = findViewById(R.id.mapview);
mapView.setOpaque(false);
}
@Override
protected void onStart() {
super.onStart();
mapView.onStart();
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onStop() {
super.onStop();
mapView.onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
protected void onRestart() {
super.onRestart();
mapView.onRestart();
}
}