JSFiddle - React, Tailwind, and code Playground

by Ismail Ibraheem Shurrab

HTML

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&amp;sensor=false&amp;.js"></script>
Use the right mouse-button to draw an overlay<br/><select id="overlay"><option value="Polyline">Polyline<option value="Polygon">Polygon</select>
<div id="map_canvas"></div>

CSS

html,body{height:100%;margin:0}
#map_canvas{height:90%;}

JavaScript

function initialize() {
        var mapOptions = {
          zoom: 14,
          center: new google.maps.LatLng(52.5498783, 13.425209099999961),
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map_canvas'),
            mapOptions);
        google.maps.event.addDomListener(map.getDiv(),'mousedown',function(e){
          //do it with the right mouse-button only
          if(e.button!=2)return;
          //the polygon
          poly=new google.maps.Polyline({map:map,clickable:false});
          //move-listener
          var move=google.maps.event.addListener(map,'mousemove',function(e){
                poly.getPath().push(e.latLng);
              });
          //mouseup-listener
          google.maps.event.addListenerOnce(map,'mouseup',function(e){
                google.maps.event.removeListener(move);
                if(document.getElementById('overlay').value=='Polygon'){
                  var path=poly.getPath();
                  poly.setMap(null);
                  poly=new google.maps.Polygon({map:map,path:path});
                }
          });

        });
      }

      google.maps.event.addDomListener(window, 'load', initialize);