当前位置: 首页 > article >正文

【Android 腾讯地图】腾讯地图开发记录 ① ( 地图基础显示 | 创建应用和申请key | 配置远程依赖库 | 配置腾讯地图 Key | 同意隐私协议 | 布局设置 | 覆盖自定义地图图片 )

文章目录

  • 一、创建应用和申请key
    • 1、创建应用
    • 2、申请 key
  • 二、配置应用
    • 1、配置远程依赖库
      • 基础配置
      • 完整配置
    • 2、配置腾讯地图 Key
  • 三、地图开发
    • 1、同意隐私协议
    • 2、布局文件
    • 3、地图显示 Activity 类设置
    • 4、覆盖自定义地图图片


参考 腾讯官方文档 【腾讯位置服务 - Android地图SDK】 进行开发 ;





一、创建应用和申请key




1、创建应用


进入 腾讯位置服务 控制台页面 : https://lbs.qq.com/dev/console/home ,

在这里插入图片描述

点击左侧的 " 应用管理 / 我的应用 " 面板 , 进入后 , 点击右上角的 " 创建应用 " 按钮 ,

在这里插入图片描述

设置 创建应用 的 名称 和 类型 ,

在这里插入图片描述


2、申请 key


创建应用后 , 还需要申请 Key , 点击下图中 红色矩形框 中的 " 添加 Key " 按钮即可 ,

在这里插入图片描述
在 下图的页面中 , 输入 key 名称 , 选择 SDK 选项 , 在下面的输入框中 , 输入 Android 包名 ;

在这里插入图片描述

创建 key 成功后 , 弹出如下对话框 :
在这里插入图片描述

点击 " 查看我的配额 " 按钮 , 可以查看 账户的额度 , 坐标转换 10000 是不够用的 , 之后需要升级到商务版本 ;

在这里插入图片描述

下面的 红色矩形框 中就是本次生成的 Key ;

在这里插入图片描述





二、配置应用




1、配置远程依赖库


腾讯提供了两种导入依赖库的方式 :

  • 手动导入 本地依赖库
  • 从 Maven 仓库下载依赖库

这里选择从 Maven 仓库远程下载依赖库 ;


基础配置


在 Module 下的 build.gradle 构建脚本中 的 配置

dependencies {
    implementation 'com.tencent.map:tencent-map-vector-sdk:5.4.1'
}

腾讯地图的 版本号 可参考 最新版本号参考:https://lbs.qq.com/mobile/androidMapSDK/download/3dDownload 网址 , 最新的依赖库版本号是 5.4.1 ;


完整配置


如果想要使用 腾讯地图 的 完整功能 , 推荐配置如下依赖库 :

dependencies {
	// JSON 字符串解析库 ( 可不用 )
    implementation 'com.google.code.gson:gson:2.8.5'
    // Android 权限申请库 ( 可不用 )
    implementation 'pub.devrel:easypermissions:2.0.1'

	// 腾讯地图 依赖库
    implementation 'com.tencent.map:tencent-map-vector-sdk:5.4.1'
    // 腾讯地图组件库 , 可实现 小车平移 / 点聚合 等组件功能
    implementation 'com.tencent.map:sdk-utilities:1.0.9'
    // 腾讯位置服务 定位依赖库
    implementation 'com.tencent.map.geolocation:TencentLocationSdk-openplatform:7.5.3.2'
}

如果依赖库下载出现问题 , 则配置如下 Maven 仓库 :

allprojects {
    repositories {
        maven { url "https://mirrors.tencent.com/repository/maven/tencent_public/" }
        maven { url "https://mirrors.tencent.com/repository/maven/tencent_public_snapshots" }
        maven{ url "https://oss.sonatype.org/content/groups/public" }
    	maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
        google()
        mavenCentral()
        jcenter()
    }
}

2、配置腾讯地图 Key


将上一个章节申请的 Key 拷贝下来 , 配置到 AndroidManifest.xml 中的 application 标签中 , 配置内容如下 :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application>
        <!-- 腾讯地图 Key -->
        <meta-data
            android:name="TencentMapSDK"
            android:value="PH7BZ-PEMC5-XXXXX-ITJJS-XXXXX-SHFWU" />
    </application>
</manifest>

在 application 标签中配置 如下内容 :

        <!-- 腾讯地图 Key -->
        <meta-data
            android:name="TencentMapSDK"
            android:value="PH7BZ-PEMC5-XXXXX-ITJJS-XXXXX-SHFWU" />




三、地图开发




1、同意隐私协议


在进入地图界面之前 , 调用一次 下面的方法 , 设置 用户已同意隐私协议 , 否则无法使用 SDK , 建议给用户弹出提示框让用户选择 , 这里随便调用一下即可 ;

TencentMapInitializer.setAgreePrivacy(true);

2、布局文件


在布局文件中 , 推荐使用该 SupportMapFragment 作为地图的载体 , 该类中已经设置了 MapView 的 维护 操作 , 不需要自己手动维护 MapView 的生命周期 ;

        <fragment
            android:id="@+id/map_frag"
            class="com.tencent.tencentmap.mapsdk.maps.SupportMapFragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

如果想要更细力度的控制 , 建议自己定义 SupportMapFragment 类 , 将 com.tencent.tencentmap.mapsdk.maps.SupportMapFragment 拷贝到自己的应用中进行定义 ;

在这里插入图片描述


3、地图显示 Activity 类设置


Map 的基本显示 参考 腾讯地图 官方 示例代码中的 如下类 :

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import androidx.fragment.app.FragmentManager;

import com.tencent.map.vector.demo.R;
import com.tencent.tencentmap.mapsdk.maps.CameraUpdate;
import com.tencent.tencentmap.mapsdk.maps.CameraUpdateFactory;
import com.tencent.tencentmap.mapsdk.maps.SupportMapFragment;
import com.tencent.tencentmap.mapsdk.maps.TencentMap;
import com.tencent.tencentmap.mapsdk.maps.UiSettings;
import com.tencent.tencentmap.mapsdk.maps.model.CameraPosition;
import com.tencent.tencentmap.mapsdk.maps.model.LatLng;

public class SupportMapFragmentActivity extends AppCompatActivity {

    /**
     * SDK提供了SupportMapFragment这个类来加载地图,这个类的方便之处就在于不用手动管理内存
     */

    private FragmentManager fm;
    protected TencentMap tencentMap;
    private SupportMapFragment supportMapFragment;
    protected UiSettings mapUiSettings;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_support_map_fragment);

        //创建tencentMap地图对象,可以完成对地图的几乎所有操作
        fm = getSupportFragmentManager();
        supportMapFragment = (SupportMapFragment) fm.findFragmentById(R.id.map_frag);
        tencentMap = supportMapFragment.getMap();
        mapUiSettings = tencentMap.getUiSettings();
        //对地图操作类进行操作
        CameraUpdate cameraSigma =
                CameraUpdateFactory.newCameraPosition(new CameraPosition(
                        new LatLng(39.984066, 116.307548),
                        15,
                        0f,
                        0f));
        //移动地图
        tencentMap.moveCamera(cameraSigma);

    }
}

4、覆盖自定义地图图片


下面的代码是设置 自定义的 地图 , 覆盖到 腾讯地图上 ;

LatLngBounds 设置的第一个坐标是 地图东北角 坐标 , 第二个坐标是 地图西南角坐标 ;

alpha 函数设置 覆盖图片 的透明度 , 一般设置为 1.0 完全不透明 即可 , 其设置范围是 0.0 - 1.0 , 0 表示完全透明 , 1 表示不透明 ;

LatLngBounds lb = new LatLngBounds(
                new LatLng(40.045226, 116.280069),
                new LatLng(40.038918, 116.271873));
        groundOverlayOptions = new GroundOverlayOptions()
                .bitmap(BitmapDescriptorFactory
                        .fromAsset("groundoverlay.jpg"))
                .latLngBounds(lb)
                .alpha(1.0f);
        groundOverlay = mTencentMap.addGroundOverlay(groundOverlayOptions);

http://www.kler.cn/a/422152.html

相关文章:

  • java调用cmdsh命令
  • T113-S3 Tina 新增自定义板型号
  • 千益畅行,旅游卡有些什么优势?
  • 如何加强游戏安全,防止定制外挂影响游戏公平性
  • 纯粹直播 1.7.7 |手机版和TV版,聚合六大直播平台,原画播放
  • 多模态COGMEN详解
  • burp2
  • DeviceIoControl超时后如何处理
  • 【Spring】接口版本控制最佳实现
  • Vue3 父子组件传值
  • ESLint 规则入门:如何配置重要性及选项(2)
  • 【数据分析】如何根据数据选择图表类型
  • 【Android】组件化嘻嘻嘻gradle耶耶耶
  • 下载 M3U8 格式的视频
  • c++ mfc调用UpdateData(TRUE)时,发生异常
  • ElasticSearch easy-es 聚合函数 group by 混合写法求Top N 词云 分词
  • k8s,声明式API对象理解
  • 基于Java Springboot广西文化传承微信小程序
  • 洛谷 B2029:大象喝水 ← 圆柱体体积
  • 《Vue零基础教程》(5)计算属性和侦听器好讲解
  • 【Linux|计算机网络】HTTPS工作原理与安全机制详解
  • 说说Elasticsearch查询语句如何提升权重?
  • Leetcode 303 Range Sum Query - Immutable
  • 靶机dpwwn-01
  • vue3项目最新eslint9+prettier+husky+stylelint+vscode配置
  • Qt 面试题复习10~12_2024-12-2