最后更新时间: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沉浸式地图实例代码如下:
// 显示暗色地图
[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版本中添加了路况样式自定义功能,该功能支持自定义路况线段的颜色、宽度、描边等。
QTrafficStyle 类是路况样式的自定义项,可自行配置一种或多种交通状态的样式(如颜色、线宽和描边)。
| 属性 | 说明 |
|---|---|
| UIColor *smoothColor | 交通顺畅配色 |
| UIColor *smoothBorderColor | 交通顺畅描边配色 |
| UIColor *slowColor | 交通缓慢配色 |
| UIColor *slowBorderColor | 交通缓慢描边配色 |
| UIColor *congestedColor | 交通拥堵配色 |
| UIColor *congestedBorderColor | 交通拥堵描边配色 |
| UIColor *seriouseCongestedColor | 交通非常拥堵配色 |
| UIColor *seriouseCongestedBorderColor | 交通非常拥堵描边配色 |
| int borderWidth | 路况的线宽 |
| int lineWidth | 路况的描边宽度 |
注:路况样式为地图配置中的一种,需在地图初始化时传入,地图初始化后无法再更改样式
初始化 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];
赋值到 QMapConfig 类中, 地图初始化时传入地图配置
QMapConfig *cfg = [[QMapConfig alloc] initWithSubID:@"您的subID"
subKey:@"您的subkey"];
cfg.trafficStyle = style;
self.mapView = [[QMapView alloc] initWithFrame: CGRectMake(0, 0, 500, 500) config:cfg];
......
有帮助
没帮助