浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
更新时间:2020-06-23
功能介绍

个性化地图,通过改变底图各元素和文字的颜色、可见性,实现地图多样展现效果,适配各个行业不同的地图呈现效果或适配不同App风格。

支持设置地图点、线、面共51个元素,包含陆地、水系、绿地、人造区域、建筑物、道路、铁路、地铁,POI、行政区划、边界线等。

支持设置的地图元素的颜色、透明度、宽度、指定级别控制元素及其可见性的变更。

个性化地图功能示例代码位于基础地图(BaseMapDemo)这个功能模块,开发者使用时可以参考。

升级看点

自Android地图SDK V 6.3.0(包含)版本之后,个性化地图全面升级,看点如下:

新版的个性化地图样式对齐官网个性化地图编辑器,做到一次编辑,多端使用。

地图样式实现分版本管理,开发者对定制的地图样式实现有效管理,保证样式稳定。

不再支持json格式的样式文件配置,改为.sty格式的样式文件。需要配合个性化编辑器生成,升级后,个性化地图的调用接口保持不变,样式路径需要传入.sty格式的文件路径。
备注:
我们推荐您使用升级后的个性化地图,如仍需使用json格式,请根据个性化地图元素说明规则,编辑JSON代码。

使用步骤

选择模版/编辑个性化地图——传入.sty文件路径/样式ID——开始使用个性化地图

1 选择模版/编辑个性化地图

开发者可选择模版或者新建并配置个性化地图,打造独具风格与特色的地图。
map%2FnewAndroid%2FIndividuationMap%2FChooseTemplateNew.png

2 发布样式,获取.sty样式ID或者下载样式文件

a、如图,点击发布样式
map%2FnewAndroid%2FIndividuationMap%2FReleaseTheStyle.png

b、选择确认发布
map%2FnewAndroid%2FIndividuationMap%2FEnsureToRelease.png

c、获取在线样式id
map%2FnewAndroid%2FIndividuationMap%2FStyleId.png

d、点击下载样式文件,选择下载STY文件,获取本地离线个性化样式文件
map%2FnewAndroid%2FIndividuationMap%2FDownloadSTY.png
3 使用个性化地图

方式一:配置.sty样式ID

// 地图View实例
private MapView mMapView;
// 用于设置个性化地图的样式文件
private static final String CUSTOM_FILE_NAME_CX = "custom_map_config_CX.sty";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
 
    mMapView = new MapView(this, new BaiduMapOptions());
    FrameLayout frameLayout = new FrameLayout(this);
    frameLayout.addView(mMapView);
    setContentView(frameLayout);
 
 
    // 获取.sty文件路径
    String customStyleFilePath = getCustomStyleFilePath(CustomMapDemo.this, CUSTOM_FILE_NAME_CX);
 
 
    MapCustomStyleOptions mapCustomStyleOptions = new MapCustomStyleOptions();
    mapCustomStyleOptions.localCustomStylePath(customStyleFilePath); //本地离线样式文件路径,如果在线方式加载失败,会默认加载本地样式文件。
    mapCustomStyleOptions.customStyleId("d868bebd0fe24fa59381acbcd4db24e3"); //在线样式文件对应的id。
 
    mMapView.setMapCustomStyle(mapCustomStyleOptions, new CustomMapStyleCallBack() {
        @Override
        public boolean onPreLoadLastCustomMapStyle(String customStylePath) {
            return false; //默认返回false,由SDK内部处理加载逻辑;返回true则SDK内部不会做任何处理,由开发者自行完成样式加载。
        }
 
        @Override
        public boolean onCustomMapStyleLoadSuccess(boolean hasUpdate, String customStylePath) {
            return false; //默认返回false,由SDK内部处理加载逻辑;返回true则SDK内部不会做任何处理,由开发者自行完成样式加载。
        }
 
        @Override
        public boolean onCustomMapStyleLoadFailed(int status, String Message, String customStylePath) {
            return false; //默认返回false,由SDK内部处理加载逻辑;返回true则SDK内部不会做任何处理,由开发者自行完成样式加载。
        }
    });
}
 
 
@Override
protected void onResume() {
    super.onResume();
    // 在activity执行onResume时必须调用mMapView.onResume()
    mMapView.onResume();
}
 
@Override
protected void onPause() {
    super.onPause();
    //在activity执行onPause时必须调用mMapView.onPause()
    mMapView.onPause();
}
 
@Override
protected void onDestroy() {
    super.onDestroy();
    // 在activity执行onDestroy时必须调用mMapView.onDestroy()
    mMapView.onDestroy();
}

方式二:加载样式文件
a、 在项目中添加自定义样式文件 如:将离线样式文件存放在assets目录下。
map%2FnewAndroid%2FIndividuationMap%2FMapIndividuationFilePathNew.png
b、 传入样式文件路径:
V6.0.0版本起,建议使用新的个性化地图API,能够实现动态更改样式(同一地图设置不同的样式),同时适配多地图场景(不同地图设置不同的样式),并且样式文件路径设置API不再要求在地图创建之前调用,地图对象创建完成之后设置即可。在地图对象释放时,也无需关闭个性化开关。详细区别见个性化地图元素说明规则

// 地图View实例
private MapView mMapView;
// 用于设置个性化地图的样式文件
private static final String CUSTOM_FILE_NAME_CX = "custom_map_config_CX.sty";
 
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
 
    mMapView = new MapView(this, new BaiduMapOptions());
    FrameLayout frameLayout = new FrameLayout(this);
    frameLayout.addView(mMapView);
    setContentView(frameLayout);
    // 获取.sty文件路径
    String customStyleFilePath = getCustomStyleFilePath(CustomMapDemo.this, CUSTOM_FILE_NAME_CX);
    // 设置个性化地图样式文件的路径和加载方式
    mMapView.setMapCustomStylePath(customStyleFilePath);
    // 动态设置个性化地图样式是否生效
    mMapView.setMapCustomStyleEnable(true);
}
 
 
@Override
protected void onResume() {
    super.onResume();
    // 在activity执行onResume时必须调用mMapView.onResume()
    mMapView.onResume();
}
 
@Override
protected void onPause() {
    super.onPause();
    //在activity执行onPause时必须调用mMapView.onPause()
    mMapView.onPause();
}
 
@Override
protected void onDestroy() {
    super.onDestroy();
    // 在activity执行onDestroy时必须调用mMapView.onDestroy()
    mMapView.onDestroy();
}
4 至此,可以开始使用个性化地图。
  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消