3

この onmousemove イベントを openlayers で使用する方法を知っている人はいますか?

$('#map')[0].onmousemove = (function() {
    var onmousestop = function() {
        $('#tooltip').fadeIn(500);
    }, thread;

    return function() {
        $('#tooltip')
            .css('top', e.pageY + offsetY)
            .css('left', e.pageX + offsetX);
        $('#coor').val(e.pageX + ' - ' + e.pageY);
        $('#tooltip').fadeOut(500);
        clearTimeout(thread);
        thread = setTimeout(onmousestop, 500);
    };
})();

上記のコードを、開いているレイヤーのイベントとして追加したいと考えています。ここに実用的な例があります。

map.events.register('mouseout', map, function (e) {
    $('#tooltip').remove();
});
4

1 に答える 1

3

OL のマップ オブジェクトは、多くの種類のイベントをサポートします。

リストは次のとおりです(http://dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Map-js.html

preaddlayer ==> triggered before a layer has been added.  
addlayer ==> triggered after a layer has been added. 
preremovelayer ==> triggered before a layer has been removed.  
removelayer ==> triggered after a layer has been removed. 
changelayer ==> triggered after a layer name change, order change, opacity change, params change, visibility change (due to ==> resolution thresholds) or attribution change (due to extent change).  
movestart ==> triggered after the start of a drag, pan, or zoom
move ==> triggered after each drag, pan, or zoom
moveend ==> triggered after a drag, pan, or zoom completes
zoomend ==> triggered after a zoom completes
mouseover ==> triggered after mouseover the map
mouseout ==> triggered after mouseout the map
mousemove ==> triggered after mousemove the map
changebaselayer ==> triggered after the base layer changes

これらのイベントをそのようなもので使用しないのはなぜですか:

map.events.register('move', map, function (e) {
    $('#tooltip')
            .css('top', e.pageY + offsetY)
            .css('left', e.pageX + offsetX);
    $('#coor').val(e.pageX + ' - ' + e.pageY);
});

map.events.register('movestart', map, function (e) {
    $('#tooltip').fadeIn(500);
});

map.events.register('moveend', map, function (e) {
    $('#tooltip').fadeOut(500);
});
于 2012-06-13T06:53:10.430 に答える