Java Android的Mapbox,使用服务器上的分幅
我正试图找出在Android上使用Mapbox并将磁贴存储在服务器中的最佳实践 我知道这些瓷砖是可用的,因为我可以让它们出现在网上。 我可以使用默认样式没有问题Java Android的Mapbox,使用服务器上的分幅,java,android,kotlin,mapbox-android,Java,Android,Kotlin,Mapbox Android,我正试图找出在Android上使用Mapbox并将磁贴存储在服务器中的最佳实践 我知道这些瓷砖是可用的,因为我可以让它们出现在网上。 我可以使用默认样式没有问题mapBox.setStyle(Style.LIGHT)但是当我尝试使用服务器平铺更改地图样式时 我正在创建一个JsonObject: val mapJSONObject = JsonObject() 这相当于: { "version": 8, "sources": { "tiles-name": { "type
mapBox.setStyle(Style.LIGHT)
但是当我尝试使用服务器平铺更改地图样式时
我正在创建一个JsonObject
:
val mapJSONObject = JsonObject()
这相当于:
{
"version": 8,
"sources": {
"tiles-name": {
"type": "raster",
"url": "https://myserver.com/map/c16c1u38213f0db8001b1c6e8cee5f7a/{z}/{x}/{y}?token=jfsdajfdsjkfjksh34232fsd",
"tileSize": 256
}
},
"layers": [{
"id": "ee-raster",
"type": "raster",
"source": "tiles-name",
"minzoom": 0,
"maxzoom": 22
}]
}
我试图通过以下方式使用此JsonObject
:
map.setStyle(Style.Builder().fromJson(mapJSONObject.toString()))
或者通过此函数创建.json文件:
@Throws(IOException::class)
fun save(context: Context, jsonString: String) {
val rootFolder = context.getExternalFilesDir(null)
val jsonFile = File(rootFolder, "file.json")
val writer = FileWriter(jsonFile)
writer.write(jsonString)
writer.close()
}
然后通过以下方式使用该.json文件:
map.setStyle(Style.Builder().fromJson("file.json"))
使用以下命令触发更改映射时:
map.setStyle(Style.Builder().fromJson(mapJSONObject.toString()))
map.setStyle(Style.Builder().fromJson("file.json"))
我收到错误消息:
D/Mbgl HttpRequest:[HTTP]请求,响应=404:无其他
信息
[样式]:无法加载源分幅名称:HTTP状态代码404
使用以下命令触发更改映射时:
map.setStyle(Style.Builder().fromJson(mapJSONObject.toString()))
map.setStyle(Style.Builder().fromJson("file.json"))
我收到错误消息:
[ParseStyle]:未能分析样式:无效值。在偏移量1处
即使错误消息看起来足够清楚,我也无法调试它
我一直在阅读MapBox文档,但似乎找不到在服务器上使用tiles的清晰示例
有人能找出问题所在,或者给我举一个使用这种方法的例子吗
不必使用Kotlin,Java也同样有用