2016-07-22 15 views
0

addイベントを作成する方法や、機能がソースに追加されたときにイベントにリスナーを追加する方法がわかりません。私はdrawendイベントは、私は必要なものですが、それが判明したとして、このイベントが発生したとき、機能はまだソースに追加されていないことが考え機能イベントを追加する

draw.on("drawend", function (e) { 
//.... 
}); 

:のようにこの時点で私は、他のイベントの束を持っています。

答えて

1

試してソースに手動で追加する: あなたがソース層に機能をプッシュするdrawendイベントにオーバーレイ

var features = new ol.Collection(); 
var featureOverlay = new ol.layer.Vector({ 
    source: new ol.source.Vector({features: features}), 
    style: new ol.style.Style({ 
     fill: new ol.style.Fill({ 
      color: 'rgba(255, 255, 255, 0.2)' 
     }), 
     stroke: new ol.style.Stroke({ 
      color: '#ffcc33', 
      width: 2 
     }), 
     image: new ol.style.Circle({ 
      radius: 7, 
      fill: new ol.style.Fill({ 
       color: '#ffcc33' 
      }) 
     }) 
    }) 
}); 
featureOverlay.setMap(map); 

var draw = new ol.interaction.Draw({ 
    features: features, // we set the newly drawn feature on the overlay declared previously 
    type: /** @type {ol.geom.GeometryType} */ ('Polygon') // for example polygon 
    }); 

にドローインタラクションを追加するには、代わりに

draw.on('drawend', function(event) { 
    yourSource.addFeature(event.feature); 
} 
1

をしたいです'addfeature'イベントを使用できます:

source.on('addfeature', function (ft) { 
    // ft - feature being added 
}); 
関連する問題