2014-11-14 9 views
0

Я использую Openlayers 3 для моего приложения отображения. Мне нужно определить, что пользователь переместил карту. Через некоторое время я нашел, что там будут «перетаскивать» и «перетаскивать» события, запущенные объектом карты. К сожалению, со мной это не происходит. Я получаю только событие moveend, но он запускается в любое время, когда карта перемещается - программная или пользовательская. Пожалуйста, не могли бы вы помочь мне в этом вопросе? Мой код:Openlayers 3 drag event

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

Нет таких событий прямо сейчас. Не стесняйтесь создавать проблемы GitHub для этого. – erilem

+1

Событие 'pointerdrag' может быть тем, за которым вы после. Однако он также запускается, когда карту нельзя перетаскивать дальше, например. потому что вы находитесь на краю своей протяженности. Обратите внимание, что события 'drag' и' dragend' являются OpenLayers 2, а не 3. – ahocevar

+0

Yep, pointerdrag работает для меня - я просто нашел «чудо» снятия «стабильной версии» на странице справки ...;). Большое спасибо. –

ответ

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 событие, и шоу 'перетащить'.

+0

Возможно, вы могли бы поставить это на рабочий jsfiddle? –

+0

не выглядит релевантным, поскольку вопрос был связан с Openlayers 3, а не с Openlayers 2 –