个性化地图,通过改变底图各元素和文字的颜色、可见性,实现地图多样展现效果,适配各个行业不同的地图呈现效果或适配不同app风格。
自android地图sdk v 6.3.0(包含)版本之后,个性化地图全面升级,看点如下:
备注:
我们推荐您使用升级后的个性化地图,如仍需使用json格式,请根据个性化地图元素说明规则,编辑json代码。
——传入.sty文件路径/样式id——开始使用个性化地图
开发者可选择模版或者新建并配置个性化地图,打造独具风格与特色的地图。
a、如图,点击发布样式
b、选择确认发布
c、获取在线样式id
d、点击下载样式文件,选择下载sty文件,获取本地离线个性化样式文件
方式一:配置.sty样式id
// 地图view实例privatemapview mmapview;// 用于设置个性化地图的样式文件privatestatic final stringcustom_file_name_cx="custom_map_config_cx.sty";@overridepublicvoidoncreate(bundle savedinstancestate){super.oncreate(savedinstancestate);mmapview =newmapview(this,newbaidumapoptions());framelayout framelayout =newframelayout(this);framelayout.addview(mmapview);setcontentview(framelayout);// 获取.sty文件路径string customstylefilepath =getcustomstylefilepath(custommapdemo.this,custom_file_name_cx);mapcustomstyleoptions mapcustomstyleoptions =newmapcustomstyleoptions();mapcustomstyleoptions.localcustomstylepath(customstylefilepath);//本地离线样式文件路径,如果在线方式加载失败,会默认加载本地样式文件。mapcustomstyleoptions.customstyleid("d868bebd0fe24fa59381acbcd4db24e3");//在线样式文件对应的id。mmapview.setmapcustomstyle(mapcustomstyleoptions,newcustommapstylecallback(){@overridepublic boolean onpreloadlastcustommapstyle(string customstylepath){returnfalse;//默认返回false,由sdk内部处理加载逻辑;返回true则sdk内部不会做任何处理,由开发者自行完成样式加载。}@overridepublic boolean oncustommapstyleloadsuccess(boolean hasupdate,string customstylepath){returnfalse;//默认返回false,由sdk内部处理加载逻辑;返回true则sdk内部不会做任何处理,由开发者自行完成样式加载。}@overridepublic boolean oncustommapstyleloadfailed(int status,stringmessage,string customstylepath){returnfalse;//默认返回false,由sdk内部处理加载逻辑;返回true则sdk内部不会做任何处理,由开发者自行完成样式加载。}});}@overrideprotectedvoidonresume(){super.onresume();// 在activity执行onresume时必须调用mmapview.onresume()mmapview.onresume();}@overrideprotectedvoidonpause(){super.onpause();//在activity执行onpause时必须调用mmapview.onpause()mmapview.onpause();}@overrideprotectedvoidondestroy(){super.ondestroy();// 在activity执行ondestroy时必须调用mmapview.ondestroy()mmapview.ondestroy();}
方式二:加载样式文件
a、 在项目中添加自定义样式文件 如:将离线样式文件存放在assets目录下。
b、 传入样式文件路径:
v6.0.0版本起,建议使用新的个性化地图api,能够实现动态更改样式(同一地图设置不同的样式),同时适配多地图场景(不同地图设置不同的样式),并且样式文件路径设置api不再要求在地图创建之前调用,地图对象创建完成之后设置即可。在地图对象释放时,也无需关闭个性化开关。详细区别见个性化地图元素说明规则
// 地图view实例privatemapview mmapview;// 用于设置个性化地图的样式文件privatestatic final stringcustom_file_name_cx="custom_map_config_cx.sty";@overridepublicvoidoncreate(bundle savedinstancestate){super.oncreate(savedinstancestate);mmapview =newmapview(this,newbaidumapoptions());framelayout framelayout =newframelayout(this);framelayout.addview(mmapview);setcontentview(framelayout);// 获取.sty文件路径string customstylefilepath =getcustomstylefilepath(custommapdemo.this,custom_file_name_cx);// 设置个性化地图样式文件的路径和加载方式mmapview.setmapcustomstylepath(customstylefilepath);// 动态设置个性化地图样式是否生效mmapview.setmapcustomstyleenable(true);}@overrideprotectedvoidonresume(){super.onresume();// 在activity执行onresume时必须调用mmapview.onresume()mmapview.onresume();}@overrideprotectedvoidonpause(){super.onpause();//在activity执行onpause时必须调用mmapview.onpause()mmapview.onpause();}@overrideprotectedvoidondestroy(){super.ondestroy();// 在activity执行ondestroy时必须调用mmapview.ondestroy()mmapview.ondestroy();}
上一篇
下一篇
本篇文章对您是否有帮助?