Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Polygon Drawing and Getting Coordinates with Google Map API v3 [closed]

I'm trying to develop an application by using Google Maps API v3. What I'm trying to do is; first let the user draw a polygon on a Google Map and get his/her polygon's coordinates and save them into a database. I will then show the user saved coordinates.

I don't know how to let users draw polygon on a Google Map with API v3 and then get the coordinates. If I can get those coordinates, it's easy to save them into a database.

http://gmaps-samples.googlecode.com/svn/trunk/poly/mymapstoolbar.html is nearly the exact example but it uses API v2 and doesn't give coordinates. I want to use API v3 and be able to get all coordinates.

Is there any examples of drawing polygon and getting its coordinates with API v3?

like image 358
Burak Erdem Avatar asked Feb 21 '11 22:02

Burak Erdem


People also ask

How do I extract a polygon from Google Maps?

In Google Earth, create the polygon that you wish to bring into RockWorks. Or, locate the polygon that currently exists in your Saved Places listing. Right-click on the item, and choose Copy from the pop-up menu. Or, right-click on the item, and choose Save Place As to save the locations in a KMZ file.


1 Answers

If all you need is the coordinates here is a drawing tool I like to use - move the polygon or re-shape it and the coordinates will display right below the map: jsFiddle here.

Also, here is a Codepen

JS

var bermudaTriangle; function initialize() {     var myLatLng = new google.maps.LatLng(33.5190755, -111.9253654);     var mapOptions = {         zoom: 12,         center: myLatLng,         mapTypeId: google.maps.MapTypeId.RoadMap     };      var map = new google.maps.Map(document.getElementById('map-canvas'),                                   mapOptions);       var triangleCoords = [         new google.maps.LatLng(33.5362475, -111.9267386),         new google.maps.LatLng(33.5104882, -111.9627875),         new google.maps.LatLng(33.5004686, -111.9027061)      ];      // Construct the polygon     bermudaTriangle = new google.maps.Polygon({         paths: triangleCoords,         draggable: true,         editable: true,         strokeColor: '#FF0000',         strokeOpacity: 0.8,         strokeWeight: 2,         fillColor: '#FF0000',         fillOpacity: 0.35     });      bermudaTriangle.setMap(map);     google.maps.event.addListener(bermudaTriangle, "dragend", getPolygonCoords);     google.maps.event.addListener(bermudaTriangle.getPath(), "insert_at", getPolygonCoords);     google.maps.event.addListener(bermudaTriangle.getPath(), "remove_at", getPolygonCoords);     google.maps.event.addListener(bermudaTriangle.getPath(), "set_at", getPolygonCoords); }  function getPolygonCoords() {     var len = bermudaTriangle.getPath().getLength();     var htmlStr = "";     for (var i = 0; i < len; i++) {         htmlStr += bermudaTriangle.getPath().getAt(i).toUrlValue(5) + "<br>";     }     document.getElementById('info').innerHTML = htmlStr; } 

HTML

<body onload="initialize()">     <h3>Drag or re-shape for coordinates to display below</h3>     <div id="map-canvas">     </div>     <div id="info">     </div> </body> 

CSS

#map-canvas {     width: auto;     height: 350px; } #info {     position: absolute;     font-family: arial, sans-serif;     font-size: 18px;     font-weight: bold; } 
like image 156
jhawes Avatar answered Oct 08 '22 09:10

jhawes