2016-10-19 3 views
0

Я хочу добавить слой изображения geotif на карту, я могу сделать это в студии boxbox легко, есть ли способ сделать это, используя библиотеку mapbox gl js. Я добавил файл GeoJSON, используя ниже код с MapBox гл библиотеки JS:Загрузите tiff в mapbox gl js или mapbox.js

 map.addSource("quakes", { 
     "type": "geojson", 
     "data": "http://localhost:3000/Srikakulam.geojson" 
     }); 

Для Tiff изображений не найти какое-либо решение, как это.

У меня есть сотни изображений tiff для динамической загрузки по погоде и дате.

ответ

2

Очень редко добавлять изображения с привязкой, такие как GeoTIFF, непосредственно к карте. GeoTIFF - относительно неэффективный формат, поэтому изображения будут очень большими, поэтому требуется больше времени для загрузки и более низкой производительности.

Более часто обрабатывать GeoTIFF в виде плитки: вы можете сделать это, загрузив их в Mapbox или с помощью инструмента, такого как TileMill, gdal2tiles или MapTiler, для локального создания фрагментов и последующей загрузки этих фрагментов на сервер. Когда вы создадите плитки, вы можете включить их в Mapbox GL JS, Mapbox.js или любой другой клиент в качестве слоя плитки.

+0

Я новичок. Можете ли вы, пожалуйста, помочь мне с примером преобразования геотифа в плитки в mapbox и как включить его в mapbox gl js в качестве слоя плитки? @tmcw – Pbms

1

Вы можете добавить gif, и jpg изображения в GL JS, используя image source type. Here is an example.

+0

Мне это нужно для изображений с привязками (geotiff). – Pbms

0

Если вы не хотите преобразовывать ваш tiff в gif/png/jpg и загружать его в качестве источника изображения (как предложено @ lucas-wojciechowski), не могли бы вы создать источник векторной плитки в MapBox Studio Classic и загрузите его в карту MB-gl-js как vector-source.

Обратите внимание, что векторные плитки, как и большинство векторных форматов данных, также могут вставлять растровые данные, но вы теряете векторную функциональность, например, при масштабировании, рендеринг на стороне клиента и запросы данных на стороне клиента.

+0

У меня есть несколько изображений tiff в указанной области, вы хотите динамически менять изображения на карте. – Pbms

+0

загрузите все слои в один источник и динамически измените видимый слой с помощью свойства рисования [растр-непрозрачность] (https://www.mapbox.com/mapbox-gl-style-spec/#paint-raster-opacity). Или, если у вас слишком много слоев для загрузки в один источник, разбейте их на многие источники и загрузите по запросу через ['map.addSource'] (https://www.mapbox.com/mapbox-gl-js/api/ # Map # addSource) и 'map.removeSource'. Переход между источниками, вероятно, не так хорош, как переход между стилями w/i одним источником. –

+0

Можете ли вы показать пример создания источника векторной плитки и загрузки в mb-gl-js, я могу предоставить tiff-изображение, если вы хотите. – Pbms

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