admin 管理员组

文章数量: 887018


Android 腾讯地图定位功能(以3D地图为例)


前言

总结一下之前用过的腾讯地图定位功能,百度了很多,都是相对零散的东西。今天空自己总结了一下,如有不当,还望各位大佬不吝赐教!!!废话不多说,开始

一、准备环境

1,获取API Key
点击网址https://lbs.qq/console/key.html,申请API Key。
2,导入库文件
点击网址https://lbs.qq/android_v1/log.html,下载.so文件和jar包,放入libs文件夹下,如图

jar文件需手动添加到工程中,右键点击jar文件,Add AsLibrary…
并在app下的build.gradle中引入libs(如果已经引入则可忽略)

android {

...

	sourceSets {
	    main {
	        jniLibs.srcDir 'libs'
	    }
	}
}

3,配置 manifest
在 AndroidManifest.xml 中添加使用权限:

<!-- 通过GPS得到精确位置 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 通过网络得到粗略位置 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 访问网络,某些位置信息需要从网络服务器获取 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 访问WiFi状态,需要WiFi信息用于网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 修改WiFi状态,发起WiFi扫描, 需要WiFi信息用于网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 访问网络状态, 检测网络的可用性,需要网络运营商相关信息用于网络定位 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 访问网络的变化, 需要某些信息用于网络定位 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<!-- 访问手机当前状态, 需要某些信息用于网络定位 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

在application标签中配置API Key

<application>  
  ...   
   <meta-data android:name="TencentMapSDK" android:value="您申请的Key" />
</application>

ok,至此前期准备工作已完成,接下来到了实践阶段

二、实现功能

权限申请

Android 6.0系统在原有的AndroidManifest.xml声明权限的基础上新增了运行时权限动态检测,定位等权限也包含在其中。如果您的应用程序设置了 targetSdkVersion ≥ 23,则需要在调用定位功能前进行权限检查,权限检查的示例代码如下:

private void initPremis(){
    if (Build.VERS

本文标签: 腾讯 二三 功能 地图 Android