2016-03-29 134 views
2

我想用OpenLayers3显示高分辨率图像。 图像(14336px×12544px)已平铺到256px×256px的7个级别中。OpenLayers3和高分辨率图像(XYZ源)

我正在尝试将图像居中并将视图限制为图像(不重复)。

我已经看了程度投影但我没做什么,我想要的。

这里是我的代码:

var width = 14336; 
var height = 12544; 
var level = 6; 

var layer = new ol.layer.Tile({ 
    source: new ol.source.XYZ({ 
     url: 'http://projects.local/.../{z}/{x}/{-y}.jpg' 
    }), 
    maxZoom: level 
}); 

var view = new ol.View({ 
    center: [0, 0], 
    zoom: 2, 
    maxZoom: level 
}); 

var map = new ol.Map({ 
    target: 'viewerContainer', 
    layers: [ 
     layer, 
    ], 
    view: view 
}); 

感谢您的帮助

回答

2

我找到了解决得益于此的jsfiddle:http://jsfiddle.net/jonataswalker/6f233kLy/

var width = 14336; 
var height = 12544; 
var level = 6; 

var projection = new ol.proj.Projection({ 
    code: 'pixels', 
    units: 'pixels', 
    extent: [0, 0, height, width] 
}); 

var layer = new ol.layer.Tile({ 
    source: new ol.source.XYZ({ 
     url: 'http://projects.local/prototype/data/item1/0/0/0/{z}/{x}/{-y}.jpg', 
     projection: projection 
    }), 
    maxZoom: level 
}); 

var view = new ol.View({ 
    center: [height/2, width/2], 
    zoom: 2, 
    maxZoom: level, 
    projection: projection 
}); 

var map = new ol.Map({ 
    target: 'viewerContainer', 
    layers: [ 
     layer, 
    ], 
    view: view 
}); 

希望这将帮助别人