2

ユーザーがマーカーをドラッグしたときに、マップ上の新しい位置についてユーザーに警告したいと考えています。どうやらマーカーをドラッグしても、リスナーはトリガーされません。ユーザーがマーカーをマップに配置することを選択し、それをドラッグできるようにしたいと考えています。マップの反対側をクリックしてドラッグすると、マーカーの位置を変更できますが、マップをドラッグするためのリスナーを追加してメニュー アラートをポップアップさせようとすると、機能しません。ありがとう

var LatLng = new google.maps.LatLng(lat,lng);
        var marker;
        var mapOptions = {
          center: LatLng,
          zoom: 16,
          minZoom:12,
          maxZoom:18,
          panControl:false,
          scrollwheel: false,
          rotateControl:false,
          streetViewControl:false,
          keyboardShortcuts:false,
          mapTypeControl: false,
          scaleControl: false,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };


        var Gmap = new google.maps.Map($('#map_canvas').get(0),mapOptions);


        // adding pointer by clicking on mac
        google.maps.event.addListener(Gmap, 'click', function(e) {
            if (marker) {
                marker.setPosition(e.latLng);
            }else{
                marker = new google.maps.Marker({
                    position: e.latLng,
                    map: Gmap,
                    draggable:true
                });
            }

              Gmap.panTo(marker.getPosition());


        });

         google.maps.event.addListener(marker, 'dragend', function() {
             alert('Show something here');
        });
4

2 に答える 2

2

リスナーを定義するときにマーカーが定義されていないため、リスナーが機能していません。マーカーを定義する機能ブロックに配置する必要があります。

google.maps.event.addListener(Gmap, 'click', function(e) {
    if (marker) {
        marker.setPosition(e.latLng);
    } else {
        marker = new google.maps.Marker({
            position: e.latLng,
            map: Gmap,
            draggable:true
        });

        google.maps.event.addListener(marker, 'dragend', function() {
             alert('Show something here');
        });
    }

    Gmap.panTo(marker.getPosition());
});

ここで実際に動作していることを確認してください

于 2012-08-09T21:32:11.980 に答える
0

これを試してもらえますか

google.maps.event.addListener(marker, 'dragend', function () {
    updateMarkerStatus('Drag ended');
    geocodePosition(marker.getPosition());
    alert('Show something here');
});

また、Firefox を使用して JavaScript に「Break」を挿入し、JavaScript 関数がトリガーされたかどうかを確認することもできます。その情報はここで見つけることができます

于 2012-08-09T20:00:42.773 に答える