5

Google Maps API Drawing Manager を使用して、ユーザーが描画したポリゴンの各ポイントの位置を収集したいと考えています。

関数があることは知っていますが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

polygoncomplete-callback 内で使用します。

例:

 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-method を使用)、別の配列に LatLng の文字列表現を入力します。

于 2013-09-24T01:49:13.667 に答える