0

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.

Brahim Belghmi
  • 151
  • 1
  • 2
  • 12
  • You can't reverse geocode a polygon. If you have a database containing the geographic data you are interested in that supports queries on polygon contains you might be able to implement your desired functionality. – geocodezip Jul 26 '16 at 15:25
  • Thanks for your answer, but i have a question, is it possible to use the reverse geocoding for each point of the polygon to get all streets on it ? – Brahim Belghmi Jul 26 '16 at 16:00
  • No it isn't possible (that isn't how the reverse geocoder works) – geocodezip Jul 26 '16 at 16:25

0 Answers0