为谷歌地图动态创建/下载样式

Posted

技术标签:

【中文标题】为谷歌地图动态创建/下载样式【英文标题】:Dynamically create/download style for Google Maps 【发布时间】:2021-09-27 01:04:40 【问题描述】:

对于 android 版 Google 地图,我有一个带有地图样式的 RAW 格式的 JSON 文件。

我是否可以在应用程序运行时动态下载 JSON 并使用它?

mMap = googleMap
mMap.setMapStyle(
    MapStyleOptions.loadRawResourceStyle(
        this, R.raw.mapstyle1
    )
)

我无法动态创建 RAW 文件

但我也无法替换 JSON 文件,因为设置只能通过 RAW 中的 resourceId 获取样式

有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

使用公共构造函数MapStyleOptions(String json) 而不是结构loadRawResourceStyle(Context clientContext, int resourceId) 方法。类似的东西:

...
StringBuilder mapStyleStringBuilder = new StringBuilder();

// create you map style JSON
mapStyleStringBuilder.append("[");
mapStyleStringBuilder.append("  "featureType": "all", "elementType": "geometry", "stylers": [  "color": "#242f3e"  ] ,");
mapStyleStringBuilder.append("]");

// convert it to String
String dynamicallyCreatedStyleJson =  mapStyleStringBuilder.toString()

// and apply to map
mMap.setMapStyle(new MapStyleOptions(dynamicallyCreatedStyleJson));
...

【讨论】:

以上是关于为谷歌地图动态创建/下载样式的主要内容,如果未能解决你的问题,请参考以下文章

将任何图像转换为谷歌地图之类的?

如何根据gps位置纬度动态扩展谷歌地图的折线

将坐标转换为谷歌地图

如何将地址转换为谷歌地图链接(不是地图)

将经纬度转换为谷歌地图经纬度

Trello 新卡创建/修改为谷歌表格