私は OpenLayers を使用しており、マップ用のレイヤーと単一のベクターレイヤーがあります。このベクター レイヤーでは、DrawFeature コントロールを使用して正方形を描画しています。次のように、機能が追加されるのを待ってから既存の機能を削除するリスナーがあります (一度に 1 つの正方形のみが必要です)。
polygonLayer.events.register("beforefeatureadded", feature, function(evt){
console.log("Clearing existing polygons");
console.log(polygonLayer.features.length);
polygonLayer.destroyFeatures();
polygonLayer.redraw();
});//end attempt at events registration
layer.features.size を確認すると、予想どおり常に 1 であることがわかりますが、画面上の四角はまだ表示されています。レイヤーで . redraw() を呼び出しても、正方形はまだそこにあります。
私が見逃している余分なステップはありますか?
編集: ここで私のコードを見つけることができます: http://pastie.org/909644
編集:今気づいた:以前に存在した座標から正方形を描くと、それをうまくクリアできます。問題があるのは、コントローラーから描かれた正方形だけのようですか?