Get geocoding informations from a polygon

三世轮回 提交于 2019-12-13 06:34:43

问题


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.

来源:https://stackoverflow.com/questions/38593457/get-geocoding-informations-from-a-polygon

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!