簡體   English   中英

如何處理openlayers繪制多邊形事件

[英]how to handle openlayers draw polygon event

我在OpenLayers應用程序中有這樣的繪制控件。

    var drawControls = {
        polygon: new OpenLayers.Control.DrawFeature(polygonLayer, OpenLayers.Handler.Polygon),
        box: new OpenLayers.Control.DrawFeature(boxLayer, OpenLayers.Handler.RegularPolygon,{
            handlerOptions: {
                sides: 4,
                irregular: true
            }
        })
    };

我正在使用控件的激活功能來激活此控件。

 var control = drawControls[selected.key];
 control.activate();

這將在地圖上繪制多邊形。 但是我無法訪問此控件的事件。 例如,在繪制結束時事件應給我一個多邊形或框。

這是使用featureadded事件的示例。

    // Add a polygon layer to which polygons will be drawn.
    var polygonLayer = new OpenLayers.Layer.Vector("Polygon Layer", {
        projection: "EPSG:4326"
    });
    map.addLayers([polygonLayer]);

    // Initialize the polygon editor.
    var polygonEditor = new OpenLayers.Control.DrawFeature(polygonLayer,
        OpenLayers.Handler.Polygon);
    // And its event listener when the feature is added.
    polygonEditor.events.register('featureadded', polygonEditor, function(evt) {
        // Here, you should see the geometry of the drawn feature in your console.
        var geom = evt.feature.geometry;
        console.log(geom);
    });

還有一個樣品提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM