#html #amazon-s3 #mapbox #mapbox-gl-js #mapbox-gl
#HTML #amazon-s3 #mapbox #mapbox-gl-js #mapbox-gl
Вопрос:
Отображение оптимизированного для облака растрового слоя Geotiff в Mapbox GL JS
Я думаю, что я использую источник растра, исходные данные должны быть выложены плиткой. URL-адрес будет выглядеть .../{z}/{x}/{y}.tif
так.
Но я не знаю, как создать указанный выше URL. как создать URL-адрес??
Ответ №1:
Я не совсем уверен, о чем вы спрашиваете. Если вы спрашиваете: «Как мне превратить этот GeoTIFF в плиточный источник растра», есть два варианта:
- Загрузите его в Mapbox. (Теоретически это работает, хотя для меня это не всегда было успешным.)
- Используйте GDAL для его преобразования
mbtiles
, затем разместите.mbtiles
файл где-нибудь (либо на Mapbox, CloudTiler, либо на вашем собственном хостинге).
В последнем случае это будет выглядеть так:
gdal_translate myfile.tif mytiles.mbtiles
Комментарии:
1. Возможно ли это без использования mbtile и без загрузки в mapbox?
2. Я просто хочу наложить свой файл cog на базовую карту в качестве источника растровой плитки, а не изображения.
3. Вы спрашиваете: «Могу ли я использовать источник растровых листов без каких-либо растровых листов?» Для меня это не имеет смысла.
Ответ №2:
Mapbox SDK хочет извлекать фрагменты по Z / X / Y. Тем не менее, вы, вероятно, можете зарегистрировать подкласс NSURLProtocol, где вы можете взять URL-адрес Z / X / Y и создать соответствующий запрос COG, преобразовать изображение и вернуть правильное содержимое.
Я использовал это для регистрации mbtiles:// в качестве схемы URL, а мой подкласс NSURLProtocol преобразует URL-адрес Z / X / Y в оператор SQLite select.
Вы можете прочитать больше по этому вопросу на https://github.com/mapbox/mapbox-gl-native/issues/12026