谷歌地图拖动阈值

Google map drag threshold

本文关键字:阈值 拖动 谷歌地图      更新时间:2023-09-26

Javascript映射API是否支持拖动阈值
比方说,我想拖动结束事件,只有当拖动的区域超过当前可见区域的10%时才会触发。

注册dragstart事件,记录左上角和右下角maplatLng。使用它们来计算100%的可见高度和宽度,然后使用该值来获得10%的可视高度和宽度。

寄存器dragend,记录左上角和右下角map的新latLng。将新的latlng从旧的中减去,看看你移动了多少。

将此移动与10%的值进行比较:

var latUp;
var lngUp;
var latDown;
var lngDown;
google.maps.event.addListener(map, "dragstart", function() {
    latUp = map.getBounds().getNorthEast().lat();
    lngUp =  map.getBounds().getNorthEast().lng();
    latDown = map.getBounds().getSouthWest().lat();
    lngDown =  map.getBounds().getSouthWest().lng();
});
google.maps.event.addListener(map, "dragend", function() {
    var latUpNew = map.getBounds().getNorthEast().lat();
    var lngUpNew = map.getBounds().getNorthEast().lng();
    var latDownNew = map.getBounds().getSouthWest().lat();
    var lngDownNew =  map.getBounds().getSouthWest().lng();
    var tenPercentLat = Math.abs(latUp - latDown) / 10;
    var tenPercentLng = Math.abs(lngUp - lngDown) / 10;
    var moveLat =  Math.abs(latUp - latUpNew);
    var moveLng =  Math.abs(lngUp - lngUpNew);  
    if (tenPercentLat < moveLat || tenPercentLng < moveLng){
        console.log('greather than 10 percent move!');
    }
    else{
        console.log('less than 10 percent move!');
    }
});

演示:http://jsfiddle.net/4mtyu/688/