2016-08-19 7 views
1

Я использовал Mapbox GL Native (в частности, react-native-mapbox-gl). Я создаю свои собственные векторные плитки на сервере, и я хотел бы, чтобы пользователь загружал их на свое устройство из мобильного приложения. Затем я хочу, чтобы Mapbox GL использовал локальные фрагменты, указанные в файле TileJSON, указанном в файле стиля GL Mapbox.Как я могу использовать `asset: //` для файлов без APK на Android в стиле mapbox-gl?

У меня есть работа над iOS (по крайней мере, в симуляторе). Мой стиль выглядит следующим образом:

{ 
    "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":[...] 
} 

с tilejson выглядит как:

{ 
    "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

Вы пытались использовать файл: /// path? Обычно это загружается из каталога файлов приложения, например.

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

Yup! Схема 'file: ///' была реализована после того, как я создал этот вопрос. См. Проблему на странице https://github.com/mapbox/mapbox-gl-native/issues/6273. Учитывая, что теперь это правильный способ сделать это, я буду отмечать этот ответ как правильный :) –

+0

@EricPalakovichCarr Да, я тоже случайно наткнулся на эту git-нить. Отличная работа по ее реализации. Было немного белого кита для меня! –

+0

Да, это же для меня :) –

 Смежные вопросы

  • Нет связанных вопросов^_^