OpenLayers3 和高分辨率图像(XYZ 源)
OpenLayers3 and high-resolution image (XYZ source)
我正在尝试使用 OpenLayers3 显示高分辨率图像。
图像 (14336px x 12544px) 已平铺成 7 级 256px x 256px 平铺。
我试图将图像居中并将视图限制在图像上(不重复)。
我查看了 extent 和 projection,但我没有做到我想要的。
这是我的代码:
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
});
感谢您的帮助
感谢这个 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
});
希望对大家有所帮助
我正在尝试使用 OpenLayers3 显示高分辨率图像。 图像 (14336px x 12544px) 已平铺成 7 级 256px x 256px 平铺。
我试图将图像居中并将视图限制在图像上(不重复)。
我查看了 extent 和 projection,但我没有做到我想要的。
这是我的代码:
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
});
感谢您的帮助
感谢这个 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
});
希望对大家有所帮助