Android高德地图实现自定义地图样式

现在的应用中很多地方都会用到地图这个控件,但是地图提供给我们的样式有时可能不是我们想要的样式,这时候就需要用到第三方地图的自定义样式。
本文已高德地图为例,其他地图可自定查看官方文档
官方文档地址链接: 开发 --> Android地图SDK -->开发指南 -->创建地图 -->自定义地图
1.申请高德地图账号
Android高德地图实现自定义地图样式_第1张图片
2.点击自定义地图
Android高德地图实现自定义地图样式_第2张图片
3.选择一个模块开始绘制自己想要的样式(如果免费模式不能满足您的需求,可自行选择付费版本)
Android高德地图实现自定义地图样式_第3张图片
4.保存之后发布地图样式 然后选择使用与分享
选择自己对应的sdk版本进行下载离线文件Android高德地图实现自定义地图样式_第4张图片
下面开始正式使用此文件(关于地图的显示本文不做赘述,可自行查看官方文档),解压之后获取到两个文件(官网说是三个文件,但是我这里是两个文件,可能是因为我使用的是免费版的原因)
Android高德地图实现自定义地图样式_第5张图片
5.将文件放到项目中
复制两个文件放到res > assets(如果没有可以自行创建) 文件夹下
Android高德地图实现自定义地图样式_第6张图片
6.获取assets文件夹下的文件

	 private static byte[] getAssetsStyle(Context context){
            byte[]  buffer1 = null;
            InputStream is1 = null;
            try {
                is1 = context.getResources().getAssets().open("style.data");
                int lenght1 = is1.available();
                buffer1 = new byte[lenght1];
                is1.read(buffer1);
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    if (is1!=null) {
                        is1.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return buffer1;
    }
	7.为Amap设置此文件
public static void setCustomMap(Context context, AMap aMap){
        CustomMapStyleOptions customMapStyleOptions = new CustomMapStyleOptions();
        customMapStyleOptions.setEnable(true);
        customMapStyleOptions.setStyleData(getAssetsStyle(context));
        customMapStyleOptions.setStyleExtraData(getAssetsStyleExtra(context));
        aMap.setCustomMapStyle(customMapStyleOptions);
    }

以上就是大致实现方法,如有其他方法可留言联系我,大家一起共同探讨
注:高德地图在6.6.0版本以后,自定义地图使用方法进行了较大更新以前的方法很多都被弃用,而且设置无效。如要使用,可先升级到最新版本。

你可能感兴趣的:(Android高德地图实现自定义地图样式)