高德地图SDK Android版开发 3 地图图层

前言

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

高德地图图层

地图底图类型

2D地图图层

  • 普通地图
  • 卫星图(无注记)
  • 英文地图(栅格+英文注记)

3D地图图层

  • 普通地图(白昼地图)
  • 卫星图
  • 夜景地图
  • 公交地图
  • 导航地图
  • 导航夜景地图
  • 英文地图(栅格+英文注记)

地图类

  • 高德地图有两个重要的类,一个是地图视图类,一个是地图类。
  • 在前文中,通过创建MapView在应用中显示地图。
  • 这里介绍下地图类的地图底图、路况相关的接口。
  • 高德地图官方介绍AMap是地图的控制器类,用来操作地图。
  • AMap所承载的工作包括:
    • 地图图层切换(如卫星图、黑夜地图)、
    • 改变地图状态(地图旋转角度、俯仰角、中心点坐标和缩放级别)、
    • 添加点标记(Marker)、
    • 绘制几何图形(Polyline、Polygon、Circle)、
    • 各类事件监听(点击、手势等)等,
    • AMap 是地图 SDK 最重要的核心类,诸多操作都依赖它完成。。
  • 下图列举了相关的接口。

在这里插入图片描述

图层类型常量

图层类型常量 说明 支持版本
MAP_TYPE_NORMAL 普通地图 2D、3D
MAP_TYPE_SATELLITE 卫星图 2D、3D
MAP_TYPE_NIGHT 夜景地图 3D
MAP_TYPE_BUS 公交地图 3D
MAP_TYPE_NAVI 导航地图 3D
MAP_TYPE_NAVI_NIGHT 导航夜景地图 3D

接口

类型 方法 说明
int getMapType() 获取地图当前类型
void setMapType(int type) 设置地图类型

路况图层

路况图依据实时路况数据渲染。

接口

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

英文地图

  • 自 Android 3D 地图SDK V5.5.0起,地图支持切换中英文显示。

  • 英文模式下,地图显示为栅格图数据

接口

类型 方法 说明
boolean setMapLanguage(String language) 设置地图底图语言,目前支持中文底图AMap.CHINESE和英文底图AMap.ENGLISH

关于3D地图

说明:

  • 前文高德地图SDK Android版开发 1 配置已2D地图SDK为例,介绍使用高德地图SDK开发Android地图应用。
  • 3D地图SDK与之类似,下载相应的地图包,并引入到项目中即可。
  • 此外需注意在构造MapView之前必须进行合规检查,本文最后补充合规检查的接口。

示例代码

地图风格类

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

2D地图地图风格类

package com.example.mapdemo;

import com.amap.api.maps2d.AMap;
import com.amap.api.maps2d.MapView;

public class MapStyle {
   
   
    private final BaiduMap map;

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

3D地图的地图风格类

package com.example.mapdemo;

import com.amap.api.maps.AMap;
import com.amap.api.maps.MapView;

public class MapStyle {
   
   
    private final BaiduMap map;

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

地图底图类型

2D地图仅包括普通地图和卫星图

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

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

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

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

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

/**
 * 设置夜景地图
 */
public void setNight() {
   
   
    map.setMapType
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值