谷歌地图api v3:单击按钮使多边形不可编辑

时间:2014-09-18 05:33:40

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

我有可以编辑的多边形但是我需要一个选项来使相同的多边形静态,即用户不能编辑,这样我就可以在绘制的多边形内显示标记。 我尝试设置editable: false,但这没有帮助

有办法做到这一点吗?

以下代码:

drawingManager = new google.maps.drawing.DrawingManager({
    drawingMode: google.maps.drawing.OverlayType.POLYGON,
    drawingControl: false,
    polygonOptions: {
        strokeWeight: 2,
        fillOpacity: 0.2,
        editable: true,
        fillColor: '#FF0000',
        strokeColor: '#FF0000',
        geodesic: true,
        suppressUndo: true
    },
    polylineOptions: {
        editable: true,
        suppressUndo: true
    }
});

Onclick事件

$('#showRes').click(function(){
    drawingManager.setDrawingMode(null);
    drawingManager.setOptions({ 
        polygonOptions: {
            paths: pathArr,
            strokeWeight: 2,
            fillOpacity: 0.2,
            editable: false,
            fillColor: '#FF0000',
            strokeColor: '#FF0000',
            geodesic: true,
            suppressUndo: true
        }
    });
}   

2 个答案:

答案 0 :(得分:3)

由于geocodezip提供了演示链接,我能够正常工作:

   drawingManager = new google.maps.drawing.DrawingManager({
   drawingMode: google.maps.drawing.OverlayType.POLYGON,
    drawingControl: false,
    polygonOptions: {
        strokeWeight: 2,
        fillOpacity: 0.2,
        editable: true,
        fillColor: '#FF0000',
        strokeColor: '#FF0000',
        geodesic: true,
        suppressUndo: true
    },
    polylineOptions: {
        editable: true,
        suppressUndo: true
    }
});

google.maps.event.addListener(drawingManager, 'polygoncomplete', function(polygon) {
    myPolygon = polygon;
}

$('#showRes').click(function(){
    drawingManager.setDrawingMode(null);
    myPolygon.setOptions({ editable: false });
}  

答案 1 :(得分:1)

我看到你在答案中使用了setOptions()

更直接地说,您可以使用setEditable(bool)方法。