redraw on vector layers should set zoomChanged to true in the moveTo call (refs #305)
This commit is contained in:
@@ -537,6 +537,9 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
|||||||
if (OpenLayers.Renderer.NG && this.renderer instanceof OpenLayers.Renderer.NG) {
|
if (OpenLayers.Renderer.NG && this.renderer instanceof OpenLayers.Renderer.NG) {
|
||||||
this.drawn = false;
|
this.drawn = false;
|
||||||
}
|
}
|
||||||
|
this.resolution = null; // this is to force Layer.redraw set
|
||||||
|
// zoomChanged to true in the moveTo
|
||||||
|
// call
|
||||||
return OpenLayers.Layer.prototype.redraw.apply(this, arguments);
|
return OpenLayers.Layer.prototype.redraw.apply(this, arguments);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -917,7 +917,32 @@
|
|||||||
"featuresadded event received expected number of features");
|
"featuresadded event received expected number of features");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_redraw(t) {
|
||||||
|
t.plan(2);
|
||||||
|
|
||||||
|
// test that when redraw is called on a vector layer then
|
||||||
|
// moveTo gets called on the layer and receives zoomChanged
|
||||||
|
// true
|
||||||
|
|
||||||
|
var log = [];
|
||||||
|
|
||||||
|
var map = new OpenLayers.Map("map");
|
||||||
|
var layer = new OpenLayers.Layer.Vector("vector", {isBaseLayer: true});
|
||||||
|
map.addLayer(layer);
|
||||||
|
map.setCenter([0, 0], 5);
|
||||||
|
|
||||||
|
layer.moveTo = function(extent, zoomChanged) {
|
||||||
|
log.push(zoomChanged);
|
||||||
|
};
|
||||||
|
|
||||||
|
layer.redraw();
|
||||||
|
t.eq(log.length, 1, "redraw makes moveTo be called once");
|
||||||
|
if (log.length == 1) {
|
||||||
|
t.eq(log[0], true, "redraw makes moveTo be called with zoomChanged true");
|
||||||
|
}
|
||||||
|
|
||||||
|
map.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|||||||
Reference in New Issue
Block a user