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:
@@ -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);
|
||||
|
||||
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user