[OpenLayers-Dev] Bug in the maps zoomTo method since OL 2.13

Marc Jansen jansen at terrestris.de
Fri Nov 29 00:41:11 PST 2013


Hey all,

I think Johannes might have discovered a bug / behavioural change still 
undocumented. While in 2.12 it was perfectly fine to call zoomTo 
multiple times, with 2.13 and later you get very unexpected results. If 
we can we should guard against that:

Run the following lines in a console against 2.12 and 2.13 (e.g. 
http://dev.openlayers.org/releases/OpenLayers-2.12/examples/all-overlays.html, 
http://dev.openlayers.org/releases/OpenLayers-2.13/examples/all-overlays.html)

    console.log('Initial zoom is: ' + map.getZoom());
    console.log('calling zoomTo: 1, 2, 1, 0');
    map.zoomTo(1);
    map.zoomTo(2);
    map.zoomTo(1);
    map.zoomTo(0);
    console.log('wait 10 seconds, and then get the zoom');
    var to = window.setTimeout(function(){
         console.log('Current zoom is: ' + map.getZoom());
    }, 10000);

2.12 (as expected):

    Initial zoom is: 0
    calling zoomTo: 1, 2, 1, 0
    wait 10 seconds, and then get the zoom
    Current zoom is: 0


2.13 (ends with zoom 4, IMHO wrong, at least highly unexpected):

    Initial zoom is: 0
    calling zoomTo: 1, 2, 1, 0
    wait 10 seconds, and then get the zoom
    Current zoom is: 4


2.13.1 is the same as 2.13

I don't think that it is ok that we end up with four.

Best,
Marc




On 27.11.2013 13:14, Andreas Hocevar wrote:
> With your above example, your zoom level when you call map.getZoom() 
> will be something between 0 and 5. This is because map.zoomTo() is 
> asynchronous now, at least when a zoomMethod is configured for the map.
>
> So instead of calling getZoom() directly, you should register for a 
> zoomend listener and call getZoom() there.
>
> Andreas.
>
>
> On Wed, Nov 27, 2013 at 11:17 AM, Johannes Weskamm 
> <weskamm at terrestris.de <mailto:weskamm at terrestris.de>> wrote:
>
>     Hi,
>
>     I think i found a bug in the zoomTo Method of the map, while
>     investigating an issue in geoext 2 (
>     https://github.com/geoext/geoext2/issues/205).
>     The problem seems to be introduced since OL 2.13 and is also
>     occuring in 2.13.1:
>
>     When you zoom the map with the zoomTo Method multiple times in a
>     row, the result will be confusing.
>     To be exact, it will not be the last zoomValue you have given to
>     the method, instead it will become e.g. 0.
>
>     Here is the simple code which i used to test the behaviour:
>
>     m = map;
>     m.zoomTo(1);
>     m.zoomTo(2);
>     m.zoomTo(3);
>     m.zoomTo(4);
>     m.zoomTo(5);
>     m.getZoom();
>
>     The result of the last line should return a value of 5. But since
>     OL 2.13, it returns 0 or some other non-correct value.
>     I checked this with the official examples of OL 2.12, 2.13 and 2.13.1:
>
>     http://dev.openlayers.org/releases/OpenLayers-2.12/examples/all-overlays.html
>
>     In 2.12, everything works as expected, but in
>
>     http://dev.openlayers.org/releases/OpenLayers-2.13/examples/all-overlays.html
>
>     or
>
>     http://dev.openlayers.org/releases/OpenLayers-2.13.1/examples/all-overlays.html
>
>     it does not, like described above.
>     A first finding is that when you use "zoomMethod: null" on map
>     instanciation, the problem disappears. So this bug could have
>     something todo with the " zoomTween" on the map. Maybe someone
>     could have a detailed look at this?
>
>     Best regards,
>
>     Johannes Weskamm
>
>     _______________________________________________
>     Dev mailing list
>     Dev at lists.osgeo.org <mailto:Dev at lists.osgeo.org>
>     http://lists.osgeo.org/mailman/listinfo/openlayers-dev
>
>
>
>
> _______________________________________________
> Dev mailing list
> Dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/openlayers-dev/attachments/20131129/bf0452af/attachment.html>


More information about the Dev mailing list