我在OpenLayers地图上建立了一个'moveend'监听器。我可以平移或缩放地图,听众会按预期激发。我还需要在这个应用程序中以编程方式更改缩放和中心位置,但是,当我执行'moveend'监听器时会触发。是否可以区分用户驱动的视图更改和OpenLayers中的程序化视图更改?
我正在使用JavaScript OpenLayers版本2.12。
答案 0 :(得分:0)
我认为没有办法解决问题。但这就是你能做的。当您以编程方式缩放或更改中心位置时,您可以暂时取消注册moveend事件,然后重新注册它:
map.events.unregister(“moveend”,map,function); 。 。 以编程方式缩放 。 。 map.events.register(“moveend”,map,function);
答案 1 :(得分:0)
此外,在缩放或移动地图程序时,您可以将某个变量设置为true。
在侦听器中,检查该变量。如果确实如此,则会以程序方式移动地图。检查后,将其设置为false。