5

使用 Google Maps API 绘图管理器,我想收集用户绘制的多边形中每个点的位置。

我知道有一个getPath()功能,但我不确定我在哪里使用它。

这是我到目前为止的所有代码:

var map; var drawingManager;

function initialize() {
    var mapOptions = {
        center: new google.maps.LatLng(45.13536, -100.762952),
        zoom: 14,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

    drawingManager = new google.maps.drawing.DrawingManager({
        drawingMode: google.maps.drawing.OverlayType.POLYGON,
        drawingControl: false,
        polygonOptions: {
            fillColor: "#000000",
            fillOpacity: .6,
            strokeWeight: 1,
            strokeColor: "#666666",
            clickable: false,
            editable: true,
            zIndex: 1
        }
    });

    drawingManager.setMap(map);

    google.maps.event.addListener(drawingManager, 'polygoncomplete', function(polygon) {
        drawingManager.setDrawingMode(null);
    });
}

google.maps.event.addDomListener(window, 'load', initialize);

那么从这段代码中,我如何使用该getPath()函数来显示构成所绘制多边形的坐标?

4

1 回答 1

17

在多边形完成回调中使用它。

例子:

 google.maps.event.addListener(drawingManager, 'polygoncomplete', function(polygon) {
    drawingManager.setDrawingMode(null);
    var arr=[];
    polygon.getPath().forEach(function(latLng){arr.push(latLng.toString());})
    alert(arr.join(',\n'));
});

它遍历路径(使用 google.maps.MVCArray 的 forEach 方法)并用 LatLng 的字符串表示填充另一个数组

于 2013-09-24T01:49:13.667 回答