Openlayersで機能の選択を解除するにはどうすればよいですか?


9

次の行を使用して、マップ上で選択されたフィーチャを識別できます。

vector_layer.selectedFeatures

スタンドアロン関数(イベントハンドラーではない)を使用して、この機能の選択を解除できるようにしたいと思います。私は関数unselect()を使用してみましたがunselectAll()失敗しましたが、このアプローチの例を見つけることができません。

選択したオブジェクトをクリックすると、に使用できることを認識していますunselect。この場合、プログラムによる解決策が必要です。


それは私がやろうとしていることではありませんが、unSelect問題はここで議論されています:github.com/openlayers/openlayers/pull/486
djq

提案をありがとう。これらを見て、グリッド層に合わせようとしました。私が知る限り、最初にフィーチャーを作成することを含む、フィーチャーを選択するためのすべての例。既存のレイヤーが読み込まれ、ユーザーがこのレイヤーから機能を選択する実際の例は(まだ)見たことがありません。selectFeatureは、オンザフライで作成したベクターに対してのみ機能すると思い始めています。これが本当ではないことを願っています、さもなければ私は困っています。;)
user2378729 2013年

回答:


13

OpenLayers 2:SelectFeatureコントロールのunselectおよびunselectAllメソッドを使用して、機能を選択解除できます。

selectControl = new OpenLayers.Control.SelectFeature(vectorLayer);
...
map.addControls([selectControl]);
selectControl.activate();

// unselect any specific feature...
selectControl.unselect(vectorLayer.features[0]);
// ...or all features
selectControl.unselectAll();

これが機能しない場合は、コードにバグがある可能性があります。

こちらがフィドルです:http : //jsfiddle.net/dHxnh/1/


私はそれをドキュメントに見ていません...しかしそれはうまくいきます!
pakman 2014

1

オブジェクトの選択を解除するOpenlayer-さまざまな方法

複数の機能を選択するには、Shiftキーを使用します。Ctrlキーを使用して、機能の選択を1つずつ切り替えます。注:「ホバー」が選択されている場合、「クリックアウト」オプションは効果がありません。

http://openlayers.org/dev/examples/select-feature.html

クリックして機能の選択を解除します


1
申し訳ありませんが、プログラマティックという単語を追加する必要があります。unselectクリックではなく機能を使いたい。
djq
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.