2016-05-13 5 views
3

Мне нужно отобразить растровое изображение в формате GeoTiff, оно было привязано к QGIS. Похоже, что Openlayers 3.15 не поддерживает такой формат. Вы знаете что-нибудь об этом?Показать изображение GeoTiff Openlayers 3

var agentUrl = 'http://localhost:9925/Wgis/assets/img/allertaMeteoGeo.tif'; 

    var bounds = [ 713101.704, 4044061.027, 713101.704, 4044061.027]; 



    var view2 = new ol.View({ 
     center : [ -87.7302542509315, 43.744459064634 ], 
     projection : "EPSG:3857", 
     zoom : 12 
    }); 

    var sorgente = new ol.source.ImageMapGuide({ 
     projection : "EPSG:3857", 
     url : agentUrl, 
     metersPerUnit : 111319.4908, 

     imageSize: [792, 452], 
     ratio : 2 
    }); 

    var raster = new ol.layer.Image({ 
     extent : bounds, 
     source : sorgente 
    }); 

    var map2 = new ol.Map({ 
     layers : [ raster ], 
     target : 'map2', 
     view : view2 
    }); 
+0

Я не думаю, что это возможно, увидеть и эти вопросы по ГИС SE: http://gis.stackexchange.com/questions/15095/how-to-display-a-geotiff-image-with-openlayers-на-right-place http://gis.stackexchange.com/questions/97943/how-to-open-geotiff- as-base-layer-on-openlayers – chrki

+0

Возможно ли это для версии 4? Вы нашли решение? –

ответ

2

Я согласен с chrki, что в настоящее время невозможно отобразить TIFF (или GEOTIFF) в карте OpenLayers, как указано здесь: https://gis.stackexchange.com/a/98029. Браузеры не отображают изображения TIFF изначально.

В качестве эксперимента я экспортировал файлы TIFF и PNG из растрового изображения ArcGIS. Тогда в OpenLayers карте (с использованием v3.18.2), я использовал следующую функцию, чтобы успешно добавить PNG как ol.layer.Image, но это не удалось без уведомления для TIFF:

function addImage() { 

    extent = [-13602803.9769, 4920816.12423, -13599949.5192, 4923458.74552]; // [left, bottom, right, top] 

    var projection = new ol.proj.Projection({ 
     code: 'xkcd-image', 
     units: 'pixels', 
     extent: extent 
    }); 

    var StaticImage = new ol.layer.Image({ 
     source: new ol.source.ImageStatic({ 
     attributions: 'yada yada', 
     url: /robs/gis_data/LiDAR Elevations2.png', 
     projection: projection, 
     imageExtent: extent 
     }) 
    });  

    map.addLayer(StaticImage); 
    map.getView().fit(extent, map.getSize());  
} 
+0

Возможно ли это для версии 4? –

0

На самом деле вы может плитки ваш образ прежде, загрузите его в IIS и получить его от чего-то вроде этого:

var newLayer = new ol.layer.Tile({ 
source: new ol.source.OSM({ 
     url: 'maps/{z}/{x}/{y}.png' 
})}); 
Смежные вопросы