欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2022-03-03 22:32:19
现在的应用中很多地方都会用到地图这个控件,但是地图提供给我们的样式有时可能不是我们想要的样式,这时候就需要用到第三方地图的自定义样式。本文已高德地图为例,其他地图可自定查看官方文档官方文档地址[开发 --> Android地图SDK -->开发指南 -->创建地图 -->自定义地图](https://lbs.amap.com/api/android-sdk/guide/create-map/custom)1.申请高德地图账号![高德开放平台控制台](https://....

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

本文地址:https://blog.csdn.net/qq_35395596/article/details/107124361