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

How can I use `asset://` for non-APK file(s) on Android in a mapbox-gl Style?

我一直在使用 Mapbox GL Native (specifically 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 从设备上加载我下载的图块吗?

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

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