点击并按住Google Maps API的活动

时间:2015-03-27 16:48:34

标签: javascript google-maps google-maps-api-3

如何为Google Maps API进行点击并暂停活动?我在setTimeout事件中使用click,但效果不佳。

当我第一次点击并按住5秒钟时,它会很有效,因为用户会显示警告消息。但是在第一次尝试之后,它会在您平移或缩放地图时开始显示警告消息。

var map;

function initialize() {
    var mapOptions = {
        zoom: 8,
        center: new google.maps.LatLng(-34.397, 150.644)
    };
    map = new google.maps.Map(document.getElementById('map-canvas'),
    mapOptions);

    google.maps.event.addListener(map, 'click', function() {
        setTimeout(function() {
            alert("Hello, World.");
        }, 5000);
    });
}

google.maps.event.addDomListener(window, 'load', initialize);

您可以尝试here

1 个答案:

答案 0 :(得分:1)

你持有的事实'当您单击地图时无关紧要...一旦您单击,事件侦听器就会激活。只需将setTimeout设置为5秒即可发生任何事情。

因此,当您点击地图进行拖动或调整缩放时,也会触发“点击”按钮。事件。

你可能需要的是' dragstart'和' zoom_changed'事件。在这些中,设置某种防止警报发生的标志,例如: (这是未经测试的,我认为不会有用,但会给你一些想法):

var mapClicked = true;

google.maps.event.addListener(map, 'dragstart', function() {
    mapClicked = false;
});

google.maps.event.addListener(map, 'dragend', function() {
    mapClicked = true;
});

google.maps.event.addListener(map, 'zoom_changed', function() {
    mapClicked = false;
});

google.maps.event.addListener(map, 'click', function() {
    setTimeout(function() {
        if (mapClicked) {
            alert("Hello, World.");
        }
    }, 5000);
});