首页 > 其他分享 >腾讯地图SDK Android版开发 3 地图图层

腾讯地图SDK Android版开发 3 地图图层

时间:2024-08-10 21:26:18浏览次数:17  
标签:map 底图 MAP 地图 public Android 图层

腾讯地图SDK Android版开发 3 地图图层

前言

本文主要介绍腾讯地图图层相关的功能和接口,以及使用方法。

腾讯地图图层

地图底图类型

  • 普通地图
    • 普通地图的信息包括精细的面区域信息,道路信息、建筑物及重要的POI(兴趣点–地图上的图标及文字)
  • 卫星图
  • 暗色地图

地图类

  • 腾讯地图有两个重要的类,一个是地图视图类,一个是地图类。
  • 在前文中,通过创建TextureMapView在应用中显示地图。
  • 这里介绍下地图类的地图底图、路况相关的接口。
  • 腾讯地图官方介绍TencentMap是地图实例,创建地图视图成功之后,通过视图对象可以直接获取地图实例。
  • 下图列举了相关的接口。
TextureMapView +getMap() TencentMap +getMapType() +setMapType(int type) +isTrafficEnabled() +setTrafficEnable(boolean enabled)

图层类型常量

图层类型常量说明
MAP_TYPE_NORMAL普通地图
MAP_TYPE_SATELLITE卫星图
MAP_TYPE_DARK暗色模式

接口

类型方法说明
intgetMapType()获取地图当前类型
voidsetMapType(int type)设置地图类型

路况图层

腾讯地图SDK还提供了实时路况图层,可以为提供实时交通数据的城市展示实时交通状况。

接口

类型方法说明
booleanisTrafficEnabled()获取是否打开交通图层
voidsetTrafficEnable(boolean enabled)设置是否打开交通图层

示例代码

地图风格类

自定义MapStyle类,实现以下方法。

package com.example.mapdemo;

import com.tencent.tencentmap.mapsdk.maps.TencentMap;
import com.tencent.tencentmap.mapsdk.maps.TextureMapView;

public class MapStyle {
    TencentMap map;

    MapStyle(TextureMapView mapView) {
        map = mapView.getMap();
    }
    // TODO 添加地图底图类型方法
    // TODO 添加实时路况方法
}

地图底图类型

/**
 * 是否为普通地图
 */
public boolean isNormal() {
    return map.getMapType() == map.MAP_TYPE_NORMAL;
}

/**
 * 设置普通地图
 */
public void setNormal() {
    map.setMapType(map.MAP_TYPE_NORMAL);
}

/**
 * 是否为卫星图
 */
public boolean isSatellite() {
    return map.getMapType() == map.MAP_TYPE_SATELLITE;
}

/**
 * 设置卫星图
 */
public void setSatellite() {
    map.setMapType(map.MAP_TYPE_SATELLITE);
}

/**
 * 是否为夜景地图
 */
public boolean isNight() {
    return map.getMapType() == map.MAP_TYPE_DARK;
}

/**
 * 设置夜景地图
 */
public void setNight() {
    map.setMapType(map.MAP_TYPE_DARK);
}

实时路况

/**
 * 获取是否打开交通图层
 * @return 是否打开交通图层
 */
public boolean isTrafficEnabled() {
    return map.isTrafficEnabled();
}

/**
 * 设置是否打开交通图层
 * @param enabled 是否打开交通图层
 */
public void setTrafficEnable(boolean enabled) {
    map.setTrafficEnabled(enabled);
}

页面布局

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.tencent.tencentmap.mapsdk.maps.TextureMapView
        android:id="@+id/mapview"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintBottom_toTopOf="@id/bottomView"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.appcompat.widget.LinearLayoutCompat
        android:id="@+id/bottomView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toBottomOf="@id/mapview">

        <RadioGroup
            android:id="@+id/RadioGroup"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/background_dark"
            android:gravity="center_horizontal"
            android:orientation="horizontal"
            android:paddingHorizontal="20dp">

            <RadioButton
                android:id="@+id/normal"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:checked="true"
                android:onClick="setMapMode"
                android:text="普通地图"
                android:textColor="@color/white"
                android:textStyle="bold" />

            <RadioButton
                android:id="@+id/statellite"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="setMapMode"
                android:text="卫星地图"
                android:textColor="@color/white"
                android:textStyle="bold" />

            <RadioButton
                android:id="@+id/night"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="setMapMode"
                android:text="夜景地图"
                android:textColor="@color/white"
                android:textStyle="bold" />

        </RadioGroup>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center"
            android:background="@android:color/background_dark"
            android:orientation="horizontal"
            android:paddingHorizontal="20dp">

            <CheckBox
                android:id="@+id/traffice"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:checked="false"
                android:onClick="setTraffic"
                android:text="路况图"
                android:textColor="@color/white"
                android:textStyle="bold" />

        </LinearLayout>
    </androidx.appcompat.widget.LinearLayoutCompat>

</androidx.constraintlayout.widget.ConstraintLayout>

控件响应事件

地图底图类型

/**
 * 设置底图显示模式
 */
public void setMapMode(View view) {
    boolean checked = ((RadioButton) view).isChecked();
    if (!checked)
        return;
    int id = view.getId();
    if (id == R.id.normal) {
        // 普通图
        mapStyle.setNormal();
    } else if (id == R.id.statellite) {
        // 卫星图
        mapStyle.setSatellite();
    } else if (id == R.id.night) {
        // 夜景地图
        mapStyle.setNight();
    }
}

实时路况

/**
 * 设置是否显示交通图
 */
public void setTraffic(View view) {
    mapStyle.setTrafficEnable(((CheckBox) view).isChecked());
}

运行效果图

在这里插入图片描述

标签:map,底图,MAP,地图,public,Android,图层
From: https://blog.csdn.net/kikikiki001/article/details/141096350

相关文章

  • Java计算机毕业设计基于Android的校园网上拍卖平台(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在数字化校园建设的浪潮中,学生们对于便捷、高效的二手商品交易需求日益增长。传统的校园跳蚤市场受限于时间、空间等因素,难以满足学生群体对于多样化......
  • Java计算机毕业设计基于Android的生活记账小助手APP的设计与实现(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在快节奏的现代生活中,个人财务管理成为了许多人面临的一大挑战。随着智能手机的普及和移动互联网技术的飞速发展,移动应用成为辅助个人财务管理的得力......
  • costmap代价地图
    1什么是costmap代价地图在机器人进行路径规划时,我们需要明白规划算法是依靠什么在地图上来计算出来一条路径的。依靠的是gmapping扫描构建的一张环境全局地图,但是仅仅依靠一张原始的全局地图是不行的。因为这张地图是静态的,无法随时来更新地图上的障碍物信息。在现实环境中,......
  • 秒开WebView?Android性能优化全攻略
    在Android应用中,WebView组件被广泛用于显示网页内容。然而,由于WebView的一些固有限制和资源消耗,它可能会导致应用启动变慢或响应速度下降。下面是一些优化WebView性能的策略,以帮助你实现“秒开”效果:1.减少初始化时间• 延迟加载:不要在应用启动时立即初始化WebView,......
  • Java计算机毕业设计基于Android的校园网上拍卖平台(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,特别是移动互联网的普及,校园生活也日益数字化、便捷化。在传统校园市场中,二手物品的交换与拍卖往往受限于时间、空间和信息......
  • Echarts 绘制地图(中国、省市、区县)
    目录前言一、ApacheEcharts二、获取地图的GeoJSON三、项目中引用四、准备放地图的容器五、配置地图option信息六、初始化地图往期回顾前言最近在搞大数据可视化的项目,需要用Echart来做可视化的图表,比如像地图,图表类,今天主要介绍下echart绘制地图如何使用,话不多说......
  • Android ndk string处理
    1.AndroidNDKNDK开发过程中常用的库定义在android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android如libc++_shared.solibc++_static.alibstdc++.a库ndk工具链下载:./bin/sdkmanager--install"ndk;25.0.8775105"2.链接问......
  • 高德地图 JS API2.0(入门级使用教程)
    高德地图JSAPI2.0入门使用教程准备工作注册高德地图开发者账号进入高德开放平台首页使用手机号注册,然后完成身份认证。创建应用[应用管理]-->[创建新的应用]–>[填写应用名称以及应用类型]-->[添加],然后获取到安全密钥和key即可。过程如下图:阅读参考文档......
  • Android开发基础08-掌握kotlin语言
    Kotlin是一种现代化的编程语言,作为Android开发的官方支持语言,越来越多的开发者选择使用Kotlin进行Android应用开发。在开始学习Android开发之前,掌握Kotlin语言的基础知识至关重要。1.基础知识a.开发环境设置安装JDK(JavaDevelopmentKit):Kotlin运行于JVM之上,因此需要先安......
  • Android开发基础07-掌握Java语言
    Android开发广泛使用Java作为编程语言,熟练掌握Java语言是十分必要的。1.基础入门知识a.设置开发环境安装JDK(JavaDevelopmentKit):JDK是进行Java开发的必备工具,务必下载安装并配置相应的环境变量。安装IDE(IntegratedDevelopmentEnvironment):推荐使用IntelliJIDEA、E......