Openlayers 3拖动事件

时间:2014-11-14 09:49:57

标签: drag-and-drop drag openlayers-3

我使用Openlayers 3作为我的地图应用程序。我需要确定用户是否移动了地图。经过一段时间的谷歌搜索我发现,那里应该拖着#34;和" dragend"地图对象触发的事件。不幸的是,它并没有发生在我身上。我只触发了moveend事件,但是每次移动地图时它都会被触发 - 程序化或用户操作。拜托,你能帮帮我解决这个问题吗?我的代码是:

function _mappingAPI() 
{
     this.map = new ol.Map({
                target: 'map_cont',
                controls: controls,
                layers: [
                    new ol.layer.Tile({
                    source: new ol.source.OSM()
                        })
                        ],
                view: this.view
        });

        this.map.on('moveend', function(evt){
           writeConsoleLog("DEBUG move end",3);

        });


        this.map.on('dragend', function(evt){
            writeConsoleLog("DEBUG drag end",3);

        });


        this.map.on('drag', function(evt){
           writeConsoleLog("DEBUG drag",3);

        });
 }

1 个答案:

答案 0 :(得分:0)

用户控制Openlayers.Control.DragPan,就像后面这样:

var dragcontrol = new OpenLayers.Control.DragPan( {
            'map': mapObj, 'panMapDone': function ( evt )
            {
                alert( 'drag' );
            }
        } );
        dragcontrol.draw();
        mapObj.addControl( dragcontrol );
        dragcontrol.activate();
拖动后,它将触发panMapDone事件,并显示'拖动。