个性化地图
自v3.7.0起,支持使用个性化地图模板,改变底图颜色和样式。
支持设置8大类地图元素的颜色和可见性,包含大地、水系、草地、高速、普通道路、铁路、地铁,poi。
效果示例:
个性化地图元素
支持修改的地图元素
注意:红色字体为v4.5.0新增属性,v4.5.0以下版本不支持。
地图元素 | 元素代码 | 形状边框颜色 | 形状填充颜色 | 文字边框颜色 | 文字填充颜色 | icon可见性 | 颜色可见性 |
全部 | all | |
|
|
|
√ |
|
陆地 | land | √ | √ | |
√ | ||
水系 | water | √ | √ | |
√ | ||
绿地 | green | √ | √ | |
√ | ||
人造区域 | manland | √ | √ | |
√ | ||
建筑物 | building | √ | √ | |
√ | ||
高速及国道 | highway | √ | √ | √ | √ | √ |
√ |
城市主路 | arterial | √ | √ | √ | √ | |
√ |
普通道路 | local | √ | √ | √ | √ | |
√ |
铁路 | railway | √ | √ | √ |
√ | ||
地铁 | subway | √ | √ | √ |
√ | ||
行政区 | boundary | √ | √ | |
√ | ||
行政区文字 | districtlabel | √ | √ | √ |
√ | ||
全部poi文字(除行政区文字) | poilabel | √ | √ | |
√ | ||
机场标注 | airportlabel |
|
|
√ |
√ |
√ |
√ |
旅游景点标注 | scenicspotspoilabel |
|
|
√ |
√ |
√ |
√ |
教育标注 | educationpoilabel |
|
|
√ |
√ |
√ |
√ |
医疗标注 | medicalpoilabel |
|
|
√ |
√ |
√ |
√ |
休闲娱乐标注 | entertainmentpoilabel |
|
|
√ |
√ |
√ |
√ |
支持修改的元素类型和包容关系
以 hightway 地图元素为例
元素类型elementType | |||||
元素代码featureType | 形状边框颜色 | 形状填充颜色 | 文字边框颜色 | 文字填充颜色 | icon可见性 |
highway | geometry.stroke | geometry.fill | labels.text.stroke | labels.text.fill | labels.icon |
元素代码featureType |
形状[边框]和[填充]颜色 |
文字[边框]和[填充]颜色 | icon可见性 | ||
highway |
geometry | labels.text | labels.icon |
设置highway的道路边框和填充 为同一颜色时,既可以分别设置geometry.stroke和geometry.fill,也可以一起设置geometry
json代码示例:
1、设置形状填充颜色
{"featureType": "highway", "elementType": "geometry.fill", "stylers": { "color": "#e7f7fc" } }
2、设置文字颜色
{"featureType": "highway", "elementType": "labels.text.fill", "stylers": { "color": "#eeeeee" } }
3、隐藏高速和国道的icon
{"featureType": "highway", "elementType": "labels.icon", "stylers": { "visibility": "off" } }
实现个性化地图
配置样式文件
style_json.json中,配置如下所示的json串来设置不同的背景颜色。您可以根据需求,在设置不同的背景颜色
个性化地图样式文件
{"featureType": "grid", "elementType": "all", "stylers": { "color": "#e7f7fc" } }
另外,我们提供了3个标准模板样式文件和一个空白样式文件点击下载, 供大家使用。
设定文件路径
1、将配置好的样式文件放入任意路径,比如"/sdcard/custom_config"
2、设定地图样式文件的路径,通过以下方法设定自定义地图样式文件的绝对路径:
//该方法需在MapView/TextureMapView构造之前设置。 MapView.setCustomMapStylePath("/sdcard/custom_config");
切换自定义地图
自v4.0起,支持个性化地图和普通地图切换。设置个性化地图后,个性化地图默认为关闭状态,需要设置生效。
MapView/TextureMapView/WearMapView新增接口, 切换个性化地图方法如下:
setMapCustomEnable(boolean customMapStyleEnable); //设置个性化地图样式是否生效
显示自定义颜色背景
新增加载地图瓦片时,设置显示自定义颜色背景的方法。在个性化地图的配置文件custom_configdir.txt中,添加如下json串,可设置不同的背景那个颜色。
{"featureType": "grid", "elementType": "all", "stylers": { "color": "#e7f7fc" }
适用于您的个性化地图为深色地图,加载地图瓦片时,将背景色设置为深色背景。
路况图路况颜色设置
Android SDK V4.5.0版本起支持路况颜色的自定义。支持对路况图的颜色做修改和取消显示,适用于对拥堵路况突出显示的用户。
路况颜色设置方法:setCustomTrafficColor(String severeCongestion,String congestion,String slow,String smooth)
参数含义:String severeCongestion,String congestion,String slow,String smooth分别代表严重拥堵,拥堵,缓行,畅通。
颜色格式:#AARRGGBB A:Alpha、R:Red、G:Green、B:Blue;其中AA为透明度;4个参数必须全部设置,不需要的颜色,透明度AA可以设置为00,即透明不显示。
具体使用方法如下:
Step1. 打开路况开关,如下。否则样式定义不显示。
mBaiduMap.setTrafficEnabled(true);
Step2. 调用路况设置API,自定义颜色,其中颜色值如有一项为null或者"",则自定义无效,显示默认颜色样式:
mBaiduMap.setCustomTrafficColor("#ffba0101", "#fff33131", "#ffff9e19", "#00000000");
Step3. 对地图状态做更新,否则可能不会触发渲染,造成样式定义无法立即生效。
MapStatusUpdate u = MapStatusUpdateFactory.zoomTo(13); mBaiduMap.animateMapStatus(u);