如何在mapbox-gl Style中使用Android上的非APK文件`asset://`?

时间:2016-08-19 17:50:52

标签: android react-native mapbox mapbox-gl

我一直在使用Mapbox GL Native(特别是react-native-mapbox-gl)。我在服务器上生成自己的矢量图块,我希望用户可以通过移动应用将它们下载到自己的设备上。然后我希望Mapbox GL使用通过Mapbox GL样式文件中引用的TileJSON文件指定的本地切片。

我已经在iOS上工作了(至少在模拟器中)。我的style.json如下所示:

{
    "version":8,
    "name":"Bright",
    "sources":{
        "mapbox":{
            "type":"vector",
            "url": "asset:///absolute/path/map/tile.json"
        }
    },
    "sprite":"asset:///absolute/path/map/sprites/mysprite",
    "glyphs":"asset:///absolute/path/map/glyphs/{fontstack}/{range}.pbf",
    "metadata":{...},
    "layers":[...]
}

tile.json看起来像:

{
    "tiles":[
        "asset:///absolute/path/map/tiles/{z}/{x}/{y}.pbf"
    ],
    "tilejson":"2.0.0",
    // plus lots of other stuff
}

在Android上,这不起作用。似乎asset://仅适用于APK内部捆绑的文件,而不适用于文件系统。

我可以在Android平台上做些什么让Mapbox GL从设备上加载下载的瓷砖吗?

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用file:///路径?这通常从您应用的文件目录加载,例如

"file:///absolute/path/map/tiles/{z}/{x}/{y}.pbf"