leaflet - 如何在Leaflet map 上实现点击+按住(长按)?

标签 leaflet touch mousedown

我正在尝试创建一个点击+按住事件来创建新的标记位置(点击+按住事件仅适用于移动应用程序);这些事件处理程序未按预期工作(发生了一些覆盖)

我尝试使用map.on('touchstart'...)、map.on('mousedown'...)和其他变体,但事件代码仅在touchend或mouseup完成后触发。

me.mapLibObj.on( 'touchstart', function(e) 
{
    if ( ! me.mapTapHoldInterval )
    {
        me.mapTapHoldInterval = setInterval( function() {

            me.mapDownIntvCounter += 1

            if ( me.mapDownIntvCounter > 20 )
            {
                me.defaultCoordinatePoint = [ e.latlng.lat,e.latlng.lng ];
                me.createMyCoordinateMarker( true );

                clearInterval( me.mapTapHoldInterval );
            }

        }, 100 )
    }

} );

me.mapLibObj.on( 'touchend', function(e) 
{
    if ( me.mapTapHoldInterval )
    {
        clearInterval( me.mapTapHoldInterval );
    }
} );

最佳答案

我建议您查看 contextmenu 事件: https://leafletjs.com/reference-1.7.1.html#map-interaction-events

map.on('contextmenu', (e) => {
  console.log('Lat, Lon:', e.latlng.lat + ',' + e.latlng.lng);
});

关于leaflet - 如何在Leaflet map 上实现点击+按住(长按)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56427289/

相关文章:

javascript - 删除Leaflet实时标记

html - 修复具有两个固定位置父项的 leafletjs map div

javascript - 如何在 Chrome 中创建 TouchEvent?

javascript - 在 mousedown-mousemove 上禁用滚动(Jquery/javascript)

javascript - 如何将字符串地址传递给传单路由机以根据字符串地址获取方向?

javascript - 设置最大边界不起作用 Leaflet

java - Android ViewPager - 添加带有淡入/淡出动画的幻灯片以在 View 之间切换

iphone - 如何在 iphone Objective-c 中用手指移动 View

javascript - Fabric.js 中的鼠标 :down vs. mousedown

javascript - Angularjs 中的 ng-touchstart 和 ng-touchend