json地图样式解析在android中失败

Posted

技术标签:

【中文标题】json地图样式解析在android中失败【英文标题】:json map style parsing failed in android 【发布时间】:2020-08-14 22:40:30 【问题描述】:

我想创建一个 JSON 文件来设置我的 google 地图的样式,但我收到以下消息:E/Google Maps android API: Map style parsing failed: org.json.JSONException: Value res of type java.lang.String cannot be转换为 JSONArray E/MapsActivityRaw:样式解析失败。有什么帮助吗? Here is my code example where I have the method with JSON creation and on left side you see the raw package where the JSON file

Here is the error that I get

我使用了 Google 平台 mapstyle.withgoogle.com。但我不确定的是,我创建了一个文本文档,然后将结尾更改为 .json,从谷歌平台复制 JSON 代码并将其放在那里,然后复制文件并将其放入 android studio。因为我不知道如何在 android studio 中创建 JSON 文件。我不知道这听起来是否正确?

【问题讨论】:

您是手动创建 JSON 还是使用 mapstyle.withgoogle.com ? 我正在使用这个 mapstyle.withgoogle.com。但我不确定的是,我创建了一个文本文档,然后将结尾更改为 .json,从谷歌平台复制 JOSN 代码并将其放在那里,然后复制文件并将其放入 android studio。因为我不知道如何在 android studio 中创建 JSON 文件。我不知道这听起来是否正确? 我有同样的问题,我的步骤和你一样,到今天你能解决吗?如何解决? 【参考方案1】:

在我离开你之前的评论中,是因为我没有解决方案,但是在仔细查看谷歌文档时,我意识到有两种类型的代码可以实现样式,一种是 JSON 文件,另一种是字符串的方式

对于您在图像中显示的代码,它必须具有 style_gray 字符串资源,对于这种情况,我假设您将在 string.xml 中有一个 xml 文件或该变量,您可以使用相同的代码,例如这个:

googleMap.setMapStyle(new MapStyleOptions(getResources().getString(R.raw.map_style_aubergine)));

要解决该错误,您必须实现其他代码,如果它与https://mapstyle.withgoogle.com/ 生成的格式的 JSON 文件兼容,则代码如下:

googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(this,R.raw.map_style_aubergine));

在我的情况下,map_style_aubergine 是 JSON 文件和 string.xml 中的一个变量,您可以将此作为示例并在代码中进行相应的更正

【讨论】:

以上是关于json地图样式解析在android中失败的主要内容,如果未能解决你的问题,请参考以下文章

Mapbox源码分析(2)url解析

在android的谷歌地图中绘制json数据

JSON解析失败android studio

在 Fragment Android Studio 中为解析器 JSON 创建类

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

JSON 样式不会改变 MapView 的样式