我使用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);
});
}
答案 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事件,并显示'拖动。