打开图层扩展程序 - longtouch

时间:2018-05-20 11:44:42

标签: openlayers

我是开放图层的新手,我试图与我的地图进行一些互动。我使用ol扩展就像一个longtouch,过了一段时间我想在地图上显示fetaure。它可以正常使用此扩展,但问题是它在释放单击后显示。

有没有办法在释放点击后显示指针下降事件的附加功能?。

这里有一个例子。 http://viglino.github.io/ol-ext/examples/mobile/map.interaction.longtouch.html

2 个答案:

答案 0 :(得分:1)

真的很奇怪。我重新编写了函数来分解和理解它。即使使用它,Point功能也只会在pulse功能之后显示。

这是我的代码:

map.on('pointerdown', function(e){
    timeOutVar = setTimeout(test(e), 1000);
});

map.on('pointerup', function(e){
    clearTimeout(timeOutVar);
});

function test(e){
    var point = new ol.Feature(new ol.geom.Point(e.coordinate));
    vector.getSource().addFeature(point);
};

var touchi = new ol.interaction.LongTouch(
{   handleLongTouchEvent: function(e){
    pulseFeature(e.coordinate);
    setTimeout( function(){ 
        pulseFeature(e.coordinate);
        }, 400);
    $(".options div").text(vector.getSource().getFeatures().length+" features added!");
            }           
    });
map.addInteraction(touchi);

答案 1 :(得分:1)

问题不在于交互,而在于矢量图层。如果要在交互时反映插入,则必须为图层设置updateWhileInteracting选项,否则该要素将添加到图层中,但仅在完成时绘制(在鼠标上方)。

我已经更新了处理此案例的示例。