I'm making an application in which the user can draw a polygon on a google map, and get its coordinates and save them. Well i a have accomplished all this.
But what i want to do now is to extract the geocoding informations(streets, addresses ...) from that polygon, i know how to make the reverse geocoding for a given Lat/Lng but my question is how i can do it with a polygon ?
This is my code :
<script src="https://maps.googleapis.com/maps/api/js?v=3.20&callback=initMap&libraries=drawing" async
defer>
</script>
<script>
var drawingManager;
var map;
function initMap() {
var mapDiv = document.getElementById('map');
map = new google.maps.Map(mapDiv, {
center: {lat: 43.598899, lng: 1.433759},
zoom: 14
});
drawingManager = new google.maps.drawing.DrawingManager({
drawingControl: true,
drawingControlOptions: {
position: google.maps.ControlPosition.TOP_CENTER,
drawingModes: [
google.maps.drawing.OverlayType.POLYGON,
google.maps.drawing.OverlayType.RECTANGLE
]
}
});
drawingManager.setMap(map);
google.maps.event.addListener(drawingManager, 'overlaycomplete', function (e) {
if (e.type != google.maps.drawing.OverlayType.MARKER) {
// Switch back to non-drawing mode after drawing a shape.
drawingManager.setDrawingMode(null);
// Add an event listener that selects the newly-drawn shape when the user
// mouses down on it.
var newShape = e.overlay;
newShape.type = e.type;
var pointsArray = [];
if (e.type == google.maps.drawing.OverlayType.RECTANGLE) {
var rectangle = e.overlay;
var bounds = rectangle.getBounds();
var NE = bounds.getNorthEast();
var SW = bounds.getSouthWest();
}
else if (e.type == google.maps.drawing.OverlayType.POLYGON) {
var polygon = e.overlay;
var coordinatesArray = polygon.getPath();
for (var i = 0; i < coordinatesArray.getLength(); i++) {
var xy = coordinatesArray.getAt(i);
var lat = xy.lat();
var lng = xy.lng();
pointsArray.push({"lat": lat, "lng": lng});
}
}
}
});
}
</script>
Thanks.