Overlay over Google Layer not correctly positioned when zooming, originally

reported by Pfirter Lukas. (Closes #849) This is solving a general problem
with overlays + EventPane subclass zoom changes.


git-svn-id: http://svn.openlayers.org/trunk/openlayers@4082 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
crschmidt
2007-08-28 21:57:05 +00:00
parent a1c040e3c0
commit cbaebbc177
2 changed files with 24 additions and 1 deletions

View File

@@ -1086,6 +1086,9 @@ OpenLayers.Map = OpenLayers.Class({
//send the move call to the baselayer and all the overlays
this.baseLayer.moveTo(bounds, zoomChanged, dragging);
bounds = this.baseLayer.getExtent();
for (var i = 0; i < this.layers.length; i++) {
var layer = this.layers[i];
if (!layer.isBaseLayer) {

View File

@@ -129,9 +129,29 @@
}
}
function test_Layer_Google_overlay(t) {
// Test for #849.
t.plan(1);
map = new OpenLayers.Map( 'map' ,
{ controls: [] , 'numZoomLevels':20});
var satellite = new OpenLayers.Layer.Google( "Google Satellite" , {type: G_SATELLITE_MAP, 'maxZoomLevel':18} );
layer = new OpenLayers.Layer.WMS.Untiled( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic', 'transparent':true},
{isBaseLayer: false} );
map.addLayers([satellite, layer]);
map.setCenter(new OpenLayers.LonLat(10.205188,48.857593), 5);
map.zoomIn();
var size = map.getSize();
var px = new OpenLayers.Pixel(size.w, size.h);
var br = map.getLonLatFromPixel(px);
t.ok(layer.grid[0][0].bounds.containsLonLat(br), "Bottom right pixel is covered by untiled WMS layer");
}
</script>
</head>
<body>
<div id="map"></div>
<div id="map" style="width:500px; height: 500px"></div>
</body>
</html>