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