Move popup redraw after layer.moveTo in setCenter to fix google maps

redraw case.


git-svn-id: http://svn.openlayers.org/trunk/openlayers@4253 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
crschmidt
2007-09-13 02:29:52 +00:00
parent ff82936fba
commit e0ec60a410
2 changed files with 13 additions and 7 deletions

View File

@@ -3,11 +3,12 @@
<style type="text/css"> <style type="text/css">
#map { #map {
width: 512px; width: 512px;
height: 512px; height: 400px;
border: 1px solid black; border: 1px solid black;
} }
</style> </style>
<script src="../lib/OpenLayers.js"></script> <script src="../lib/OpenLayers.js"></script>
<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
<script type="text/javascript"> <script type="text/javascript">
var map, layer, popup; var map, layer, popup;
var markers, feature, marker; var markers, feature, marker;
@@ -17,6 +18,9 @@
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS", layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} ); "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
map.addLayer(layer); map.addLayer(layer);
layer = new OpenLayers.Layer.Google( "Google",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
map.addLayer(layer);
map.addControl(new OpenLayers.Control.LayerSwitcher()); map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent(); map.zoomToMaxExtent();
@@ -118,6 +122,7 @@
</head> </head>
<body onload="init()"> <body onload="init()">
<div id="map"></div> <div id="map"></div>
<p>If you open an anchoredbubble and switch to google, it shouldn't crash. If it does, don't release OpenLayers.</p>
<div style="background-color:purple" onclick="add()"> click to add Popup to map</div> <div style="background-color:purple" onclick="add()"> click to add Popup to map</div>
<div style="background-color:green" onclick="addMarker()"> click to add a Marker with an AnchoredBubble popup</div> <div style="background-color:green" onclick="addMarker()"> click to add a Marker with an AnchoredBubble popup</div>
<div style="background-color:blue" onclick="changer()"> click to modify popup's attributes</div> <div style="background-color:blue" onclick="changer()"> click to modify popup's attributes</div>

View File

@@ -1072,12 +1072,6 @@ OpenLayers.Map = OpenLayers.Class({
if (zoomChanged) { if (zoomChanged) {
this.zoom = zoom; this.zoom = zoom;
//redraw popups
for (var i = 0; i < this.popups.length; i++) {
this.popups[i].updatePosition();
}
// zoom level has changed, increment viewRequestID. // zoom level has changed, increment viewRequestID.
this.viewRequestID++; this.viewRequestID++;
} }
@@ -1114,6 +1108,13 @@ OpenLayers.Map = OpenLayers.Class({
} }
} }
if (zoomChanged) {
//redraw popups
for (var i = 0; i < this.popups.length; i++) {
this.popups[i].updatePosition();
}
}
this.events.triggerEvent("move"); this.events.triggerEvent("move");
if (zoomChanged) { this.events.triggerEvent("zoomend"); } if (zoomChanged) { this.events.triggerEvent("zoomend"); }