Google地图标记设置为可拖动,但无法拖动它

时间:2012-10-24 15:02:17

标签: google-maps draggable google-maps-markers

API v3

我对标记有一个奇怪的问题:

我放置在地图上的标记设置为可拖动,WebInspector将其报告为可拖动,但我仍然无法拖动它。当我越过标记时,光标不会改变。

底层地图是可拖动的,并且可行。

在另一个页面上,使用不同的设置(更少的图层),但是相同的javascript,它按预期工作(所以我可以拖动它)。

我还使标记可点击并将事件绑定到它,并且工作正常。鼠标悬停时光标也会改变。

我的选项已用完了......为什么我不能拖动它?这可能与某些zIndex或图层定位有关吗?据我所知,地图的zIndex比其他所有层都高.......

//显示地图

geocoder.geocode( { 'address':address }, function(results, status) {

    if (status == google.maps.GeocoderStatus.OK) {

        // map options
        var mapOptions = {
            zoom: 14,
            center: results[0].geometry.location,
            panControl: false,
            zoomControl: true,
            zoomControlOptions: {
                style: google.maps.ZoomControlStyle.SMALL
            },
            mapTypeControl: false,
            scaleControl: false,
            streetViewControl: false,
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            scrollwheel: false
        };

        // render map
        map = new google.maps.Map(J('#'+mapElementId)[0], mapOptions);

        // set marker
        marker = new google.maps.Marker({
            clickable: true,
            draggable: true,
            icon: markerImage,
            shadow: markerShadow,
            shape: markerShape,
            map: map,
            position: results[0].geometry.location
        });

        google.maps.event.addListener(marker, 'click', function () { alert('marker clicked'); });
        google.maps.event.addListener(marker, 'dragend', function () {
            alert('marker dragged')
            map.setCenter(marker.getPosition());
            J('input[name=coordinates]').val(marker.getPosition());
            J('input[name=address]').val('');
        });

        J('input[name=address]').val(results[0].formatted_address);
    }
});

2 个答案:

答案 0 :(得分:5)

你有draggable: false,

将其更改为true

看到它在这里工作:http://jsfiddle.net/RASG/vA4eQ/

答案 1 :(得分:0)

试试这个:

 map.setOptions({draggable: true});