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.申请高德地图账号
2.点击自定义地图
3.选择一个模块开始绘制自己想要的样式(如果免费模式不能满足您的需求,可自行选择付费版本)
4.保存之后发布地图样式 然后选择使用与分享
选择自己对应的sdk版本进行下载离线文件
下面开始正式使用此文件(关于地图的显示本文不做赘述,可自行查看官方文档),解压之后获取到两个文件(官网说是三个文件,但是我这里是两个文件,可能是因为我使用的是免费版的原因)
5.将文件放到项目中
复制两个文件放到res > assets(如果没有可以自行创建) 文件夹下
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