Adding a zoomOffset property to XYZ and TMS layers. This allows you to have a map with a maximum resolution that differs from the maximum cache resolution (if you want to show a subset of OSM for example). r=ahocevar (closes #2616)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@10650 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Tim Schaub
2010-08-20 19:40:53 +00:00
parent 5750b5f6e0
commit 59953b8eb6
6 changed files with 192 additions and 2 deletions

View File

@@ -166,6 +166,59 @@
map.destroy();
}
function test_zoomOffset(t) {
t.plan(2);
var offset, zoom;
// test offset of 2
offset = 2;
zoom = 3;
var map = new OpenLayers.Map({
div: "map",
maxResolution: OpenLayers.Map.prototype.maxResolution / Math.pow(2, offset)
});
var layer = new OpenLayers.Layer.TMS("TMS", "", {
layername: "basic",
type: "png",
zoomOffset: offset
});
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(0, 0), zoom);
var tileurl = layer.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
level = parseInt(tileurl.split("/")[2]);
t.eq(parseInt(tileurl.split("/")[2]), zoom + offset, "correct level for offset 2");
map.destroy();
// test offset of -1
offset = -1;
zoom = 3;
var map = new OpenLayers.Map({
div: "map",
maxResolution: OpenLayers.Map.prototype.maxResolution / Math.pow(2, offset)
});
var layer = new OpenLayers.Layer.TMS("TMS", "", {
layername: "basic",
type: "png",
zoomOffset: offset
});
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(0, 0), zoom);
var tileurl = layer.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
level = parseInt(tileurl.split("/")[2]);
t.eq(parseInt(tileurl.split("/")[2]), zoom + offset, "correct level for offset -1");
map.destroy();
}
function test_Layer_TMS_setMap(t) {
t.plan(3);

View File

@@ -148,6 +148,47 @@
map.destroy();
}
function test_zoomOffset(t) {
t.plan(2);
var offset;
// test offset of 2
offset = 2;
var map = new OpenLayers.Map({
div: "map",
maxResolution: OpenLayers.Map.prototype.maxResolution / Math.pow(2, offset)
});
var layer = new OpenLayers.Layer.XYZ(name, url, {zoomOffset: offset});
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(0,0), 7);
var tileurl = layer.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
t.eq(tileurl, "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/9/261/63.png", "correct URL for offset of 2");
map.destroy();
// test offset of -1
offset = -1;
var map = new OpenLayers.Map({
div: "map",
maxResolution: OpenLayers.Map.prototype.maxResolution / Math.pow(2, offset)
});
var layer = new OpenLayers.Layer.XYZ(name, url, {zoomOffset: offset});
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(0,0), 10);
var tileurl = layer.getURL(new OpenLayers.Bounds(3.515625,45,4.21875,45.703125));
t.eq(tileurl, "http://labs.metacarta.com/wms-c/Basic.py/1.0.0/basic/9/261/63.png", "correct URL for offset of -1");
map.destroy();
}
function test_Layer_XYZ_destroy (t) {
t.plan( 3 );