示例中心
功能在线体验
控制台

高德 开发 iOS 地图SDK 开发指南 创建地图 自定义地图

更新时间:2018年01月22日

简介

自 iOS 3D 地图 SDK v5.2.0起,高德地图支持使用可视化自定义地图模版改变底图颜色和样式,实现可视化的编辑和控制显示地图元素。

实现自定义地图

创建地图样式

高德地图开放平台的开发者在取得开发者账号后,可以进入开发者控制台,在地图自定义平台选择“创建地图样式”,可以选择一个模板进行创建。


编辑地图样式 

在创建的页面的左侧列表选择任一要素编辑样式属性;也可以单击地图,在弹出的列表中选择要素进行编辑。


发布地图样式并下载 

编辑完成后点击右上角“保存”->“发布”,发布完成后,选择“使用方法”,然后选择“ios”平台,点击“下载离线文件”。


设置自定义样式

设置方法( V5.2.0及以上版本使用以下方法,其他版本仍使用老的调用方法):

/**
 * @brief 根据web导出数据设置地图样式, 目前仅支持自定义标准类型. 默认不生效,调用customMapStyleEnabled=YES使生效. since 5.2.0
 * @param data 高德web端工具导出的地图样式数据.
 */
- (void)setCustomMapStyleWithWebData:(NSData*)data;

示例代码:

NSString *path = [NSString stringWithFormat:@"%@/webExportedStyleData.data", [NSBundle mainBundle].bundlePath];
    NSData *data = [NSData dataWithContentsOfFile:path];
    [self.mapView setCustomMapStyleWithWebData:data];
    [self.mapView setCustomMapStyleEnabled:YES];
var path = Bundle.main.bundlePath
            path.append("/webExportedStyleData.data")
            let jsonData = NSData.init(contentsOfFile: path)
            self.mapView.setCustomMapStyleWithWebData(jsonData as Data!)
            self.mapView.customMapStyleEnabled = true;

自定义纹理(需要在官网购买相关权限)

第 1 步,准备纹理文件

  1. 将需要使用的纹理图片以数字命名 如"1.png""2.png"
  2. 将图片打包成ZIP文件 如Demo中提供的"icons_5_textures.zip" 注:ZIP中不能包含文件夹
  3. icons_5_textures.zip 先放在可直接读取目录下(iOS放到Bundle中)

第 2 步,准备样式文件

style.json 先放在可直接读取目录下(Demo中为放置到Assets目录,启动时复制到SD卡)(方法并不固定,最终只需保证iOS放置到Objective-C可读位置即可)

 {
    "featureType":"land", # 要素类型
    "elementType":"geometry.fill",#要素属性
    "stylers":{
      "color":"#ffffff",#自定义颜色
      "textureName":"1"#纹理压缩文件中图片名称
    }
  }

第 3 步,设置样式文件

  1. 设置样式配置文件路径
   /**
     * @brief 自定义地图样式, 目前仅支持自定义标准类型. 默认不生效,调用customMapStyleEnabled=YES使生效.
     * @param customJson 自定义的JSON格式数据.
     */
    - (void)setCustomMapStyle:(NSData*)customJson;

 2. 开启/关闭自定义样式功能

   /**
    * 是否开启自定义样式, 默认NO. since 5.0.0
    */
   -(void)setCustomMapStyleEnabled:(BOOL)enable


示例中心 功能
在线体验
常见问题