最后更新时间:2025-05-29


设置地图类型

腾讯地图SDK(iOS)提供几种预置基本的地图图层:标准地图,卫星地图,和路况图层。




一、地图类型

iOS 地图SDK底图类型目前包含四种,普通地图、卫星地图、暗色地图和3D沉浸地图,用户可通过调用接口切换地图类型。

地图类型 说明
标准地图(默认类型) QMapTypeStandard
卫星地图 QMapTypeSatellite
暗色地图 QMapTypeDark
3D沉浸式地图 QMapType3DImmersiveMap

接口:

// 地图类型
@property (nonatomic, assign) QMapType mapType;

路况图层

地图还支持路况图层,用于实时展示道路的交通状况。标准地图和卫星地图均可显示路况信息。



二、标准地图

标准地图的信息包括精细的面区域信息,道路信息、建筑物及重要的POI(兴趣点–地图上的图标及文字);

设置显示标准地图的示例代码如下:

// 显示标准地图(默认也是标准地图)
[self.mapView setMapType:QMapTypeStandard]; 

效果如下:



三、卫星图

设置显示卫星地图的示例代码如下:

// 显示卫星地图
[self.mapView setMapType:QMapTypeSatellite];

效果如下:



四、暗色图

设置暗色图实例代码如下:

// 显示暗色地图
[self.mapView setMapType:QMapTypeDark];

效果如下:



五、3D沉浸式地图

设置3D沉浸式地图实例代码如下:

// 显示暗色地图
[self.mapView setMapType:QMapType3DImmersiveMap];

效果如下:



六、样式特性配置

地图展示支持配置多个特性。初始化地图时,通过QNew3DImmersiveConfig来配置:

示例代码如下

QMapConfig *cfg = [[QMapConfig alloc] initWithSubID:nil subKey:nil];

QNew3DImmersiveConfig *new3DImmersiveConfig = [[QNew3DImmersiveConfig alloc] init];
QNew3DImmersiveAOIDisplayConfig *aoiSetting = [[QNew3DImmersiveAOIDisplayConfig alloc] init];
aoiSetting.enable3DAOI = YES;
new3DImmersiveConfig.qNew3DImmersiveAOIDisplayConfig = aoiSetting;
new3DImmersiveConfig.enablePoiDotStyle = YES;
new3DImmersiveConfig.enableRoadNameTranslucent = YES;
new3DImmersiveConfig.enableSwitchCameraBuildingCollision = YES;
new3DImmersiveConfig.enableBuildingExtEffect = YES;
new3DImmersiveConfig.enableShadow = YES;
cfg.qNew3DImmersiveConfig = new3DImmersiveConfig;

self.mapView = [[QMapView alloc]
                initWithFrame: CGRectMake(0,
                                            0,
                                            CGRectGetWidth(self.view.frame),
                                            CGRectGetHeight(self.view.frame) - CGRectGetMaxY(self.navigationController.navigationBar.frame)) config:cfg];

可配置的属性有(立面AOI、POI麻点展示和法线窗格效果只在“新3D沉浸图”类型下生效):

方法名 解释 说明
@property (nonatomic, assign) BOOL enable3DAOI; 设置立面AOI 16-22级展示,默认关闭
@property (nonatomic, assign) BOOL enablePoiDotStyle; POI麻点展示 默认打开
@property (nonatomic, assign) BOOL enableRoadNameTranslucent; 道路名被楼块遮挡时半透明效果 默认关闭
@property (nonatomic ,assign) BOOL enableSwitchCameraBuildingCollision; 楼块碰撞相机隐藏 使用部分碰撞,默认关闭
@property (nonatomic, assign) BOOL enableBuildingExtEffect; 楼块墙体法线窗格 默认关闭
@property (nonatomic, assign) BOOL enableShadow; 楼块阴影 18级开始展示,默认关闭

七、实时路况

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

实时路况的示例代码如下:

// 开启实时路况
self.mapView.showsTraffic = YES; 
// 关闭实时路况
self.mapView.showsTraffic = NO; 

带实时路况的标准地图和卫星图的效分别果如下所示:



八、路况自定义样式

腾讯地图SDK在4.3.9.1版本中添加了路况样式自定义功能,该功能支持自定义路况线段的颜色、宽度、描边等。


1、QTrafficStyle说明

QTrafficStyle 类是路况样式的自定义项,可自行配置一种或多种交通状态的样式(如颜色、线宽和描边)。

属性 说明
UIColor *smoothColor 交通顺畅配色
UIColor *smoothBorderColor 交通顺畅描边配色
UIColor *slowColor 交通缓慢配色
UIColor *slowBorderColor 交通缓慢描边配色
UIColor *congestedColor 交通拥堵配色
UIColor *congestedBorderColor 交通拥堵描边配色
UIColor *seriouseCongestedColor 交通非常拥堵配色
UIColor *seriouseCongestedBorderColor 交通非常拥堵描边配色
int borderWidth 路况的线宽
int lineWidth 路况的描边宽度

注:路况样式为地图配置中的一种,需在地图初始化时传入,地图初始化后无法再更改样式


2、使用自定义路况样式

  1. 初始化 QTrafficStyle

    QTrafficStyle *style = [[QTrafficStyle alloc] init];
    style.borderWidth = 2;
    style.lineWidth = 2;
    
    style.smoothColor = [UIColor cyanColor];
    style.smoothBorderColor = [UIColor blackColor];
    
    style.slowBorderColor = [UIColor blackColor];
    style.slowColor = [UIColor grayColor];
    
  2. 赋值到 QMapConfig 类中, 地图初始化时传入地图配置

    QMapConfig *cfg = [[QMapConfig alloc] initWithSubID:@"您的subID" 
    subKey:@"您的subkey"];
    cfg.trafficStyle = style;
    
    self.mapView = [[QMapView alloc] initWithFrame: CGRectMake(0, 0, 500, 500) config:cfg];
    ......
    
本页内容