Maps API v3 drawingManager stop drawing polygons with ESC key

http://stackoverflow.com/questions/28425150

by upsidown

HTML

<script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=drawing "></script>
<div id="map-canvas"></div>

CSS

#map-canvas {
    height: 400px;
}

JavaScript

function initialize() {
    
    var polygon;

    var mapOptions = {
        center: new google.maps.LatLng(-34.397, 150.644),
        zoom: 8
    };

    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

    var drawingManager = new google.maps.drawing.DrawingManager({

        drawingControl: true,
        drawingControlOptions: {
            position: google.maps.ControlPosition.TOP_CENTER,
            drawingModes: [google.maps.drawing.OverlayType.POLYGON]
        },
        polygonOptions: {
            fillColor: '#ffff00',
            fillOpacity: 1,
            strokeWeight: 1,
            strokeColor: '#ff0000',
            clickable: false,
            editable: true
        }
    });
    
    drawingManager.setMap(map);
    
    google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {

        polygon = e.overlay;    
    });
    
    google.maps.event.addDomListener(document, 'keyup', function (e) {
        
        var code = (e.keyCode ? e.keyCode : e.which);
        
        if (code === 27) {

            drawingManager.setDrawingMode(null);
            polygon.setMap(null);
        }
    });
}

initialize();