Read the documentation or view this example fullscreen.
// This example creates draggable triangles on the map. // Note also that the red triangle is geodesic, so its shape changes // as you drag it north or south. function initMap() { var map = new google.maps.Map(document.getElementById('map'), { zoom: 1, center: {lat: 24.886, lng: -70.268}, mapTypeId: 'terrain' }); var blueCoords = [ {lat: 25.774, lng: -60.190}, {lat: 18.466, lng: -46.118}, {lat: 32.321, lng: -44.757} ]; var redCoords = [ {lat: 25.774, lng: -80.190}, {lat: 18.466, lng: -66.118}, {lat: 32.321, lng: -64.757} ]; // Construct a draggable red triangle with geodesic set to true. new google.maps.Polygon({ map: map, paths: redCoords, strokeColor: '#FF0000', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#FF0000', fillOpacity: 0.35, draggable: true, geodesic: true }); // Construct a draggable blue triangle with geodesic set to false. new google.maps.Polygon({ map: map, paths: blueCoords, strokeColor: '#0000FF', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#0000FF', fillOpacity: 0.35, draggable: true, geodesic: false }); }
<div id="map"></div>
/* Always set the map height explicitly to define the size of the div * element that contains the map. */ #map { height: 100%; } /* Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }
<!-- Replace the value of the key parameter with your own API key. --> <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap"> </script>
Try it yourself
You can experiment with this code in JSFiddle by clicking the <>
icon in the
top-right corner of the code window.
<!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <title>Draggable Polygons</title> <style> /* Always set the map height explicitly to define the size of the div * element that contains the map. */ #map { height: 100%; } /* Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } </style> </head> <body> <div id="map"></div> <script> // This example creates draggable triangles on the map. // Note also that the red triangle is geodesic, so its shape changes // as you drag it north or south. function initMap() { var map = new google.maps.Map(document.getElementById('map'), { zoom: 1, center: {lat: 24.886, lng: -70.268}, mapTypeId: 'terrain' }); var blueCoords = [ {lat: 25.774, lng: -60.190}, {lat: 18.466, lng: -46.118}, {lat: 32.321, lng: -44.757} ]; var redCoords = [ {lat: 25.774, lng: -80.190}, {lat: 18.466, lng: -66.118}, {lat: 32.321, lng: -64.757} ]; // Construct a draggable red triangle with geodesic set to true. new google.maps.Polygon({ map: map, paths: redCoords, strokeColor: '#FF0000', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#FF0000', fillOpacity: 0.35, draggable: true, geodesic: true }); // Construct a draggable blue triangle with geodesic set to false. new google.maps.Polygon({ map: map, paths: blueCoords, strokeColor: '#0000FF', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#0000FF', fillOpacity: 0.35, draggable: true, geodesic: false }); } </script> <script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"> </script> </body> </html>