更新时间:2020-06-23
功能介绍
个性化地图,通过改变底图各元素和文字的颜色、可见性,实现地图多样展现效果,适配各个行业不同的地图呈现效果或适配不同App风格。
支持设置地图点、线、面共51个元素,包含陆地、水系、绿地、人造区域、建筑物、道路、铁路、地铁,POI、行政区划、边界线等。
支持设置的地图元素的颜色、透明度、宽度、指定级别控制元素及其可见性的变更。
个性化地图功能示例代码BMKCustomizationMapPage,开发者使用时可以参考。
升级看点
自iOS地图SDK V 5.3.0(包含)版本之后,个性化地图全面升级,看点如下:
新版的个性化地图样式对齐官网个性化地图编辑器,做到一次编辑,样式复用,多端使用。
地图样式实现分版本管理,开发者对定制的地图样式实现有效管理,保证样式稳定。
不再支持json格式的样式文件配置,改为.sty格式的样式文件,可通过个性化编辑器生成。 升级后,个性化地图的调用接口保持不变,样式路径需要传入.sty格式的文件路径。 需要配合个性化编辑器生成,升级后,个性化地图的调用接口保持不变,样式路径需要传入.sty格式的文件路径。
备注:
我们推荐您使用升级后的个性化地图,如果仍有在旧版本使用json格式文件的需求,您可以根据个性化地图元素说明规则,编辑json文件。
使用步骤
选择模版/编辑个性化地图——传入.sty文件路径/样式ID——开始使用个性化地图
1 选择模版/编辑个性化地图
开发者可选择模版或者新建并配置个性化地图样式,打造独具风格与特色的地图。
2 发布样式,获取.sty样式ID或者下载样式文件
a、如图,点击发布样式

b、选择确认发布

c、获取在线样式id

d、点击下载样式文件,选择下载STY文件,获取本地离线个性化样式文件

3 使用个性化地图
方式一:配置.sty样式ID
Objective-C
Swift
//1.设置在线个性化地图样式 BMKCustomMapStyleOption *option = [[BMKCustomMapStyleOption alloc] init]; //请输入您的在线个性化样式ID option.customMapStyleID = @"4e7360bde67c***d6e69bc6a2c53059c"; //在线样式ID加载失败后会加载此路径的文件 option.customMapStyleFilePath = path; [self.mapView setCustomMapStyleWithOption:option preLoad:^(NSString *path) { NSLog(@"预加载个性化文件路径:%@",path); } success:^(NSString *path) { NSLog(@"在线个性化文件路径:%@",path); } failure:^(NSError *error, NSString *path) { NSLog(@"设置在线个性化地图失败:%@---%@",error.userInfo,path); }];
//设置在线个性化地图样式 let option: BMKCustomMapStyleOption = BMKCustomMapStyleOption() //请输入您的在线个性化样式ID option.customMapStyleID = "4e7360bde67c456d6e69bc6a2c53059c" //获取本地个性化地图模板文件路径 let customPath: String = Bundle.main.path(forResource: "custom_map_config", ofType:"sty")! //在线样式ID加载失败后会加载此路径的文件 option.customMapStyleFilePath = customPath; mapView.setCustomMapStyleWith(option, preLoad: { (path) in print(path as Any) }, success: { (path) in print(path as Any) }) { (error, path) in print(error as Any) } mapView.setCustomMapStyleEnable(true)
Objective-C
Swift
//2.设置本地个性化地图样式 NSString *path = [[NSBundle mainBundle] pathForResource:@"custom_map_config" ofType:@"sty"]; //设置个性化地图样式 [self.mapView setCustomMapStylePath:path]; [self.mapView setCustomMapStyleEnable:YES];
//获取个性化地图模板文件路径 let path: String = Bundle.main.path(forResource: "custom_map_config", ofType:"sty")! //设置个性化地图样式 mapView.setCustomMapStylePath(path) mapView.setCustomMapStyleEnable(true)
4 至此,可以开始使用个性化地图。