引き出し以降の機能を自動的に選択します -- javascript フィールド と openlayers-3 フィールド 関連 問題

automatically select feature after drawend












1
vote

問題

日本語

私は Select および<コード> Draw Draw Interaction(v3.9.0)を持っています。現在、 feature が描かれた後、<コード> feature をクリックする必要があります。<コード> select click Eventを完全にバイパスする方法はあり、<コード> drawend ?

でその機能を自動選択します。

ありがとう

英語

I have a Select and Draw interaction in openlayers 3 (v3.9.0) and I'd like to add some unique behavior to it. Currently, after a feature is drawn, I have to click on the feature to select it. Is there a way to bypass the click event altogether and have the feature auto select itself on drawend?

Thanks

</div
     
 
 

回答リスト

2
 
vote

ol.interaction.Select 9988777662 を呼び出すことができ、次にこの監視可能なコレクションに新機能を追加します。

<事前> <コード> selectCtrl = new ol.interaction.Select(); drawCtrl = new ol.interaction.Draw(); drawCtrl.on("drawend",function(e){ selectCtrl.getFeatures(); features.push(e.feature); });
 

You can simply call getFeatures() on the ol.interaction.Select then add the new feature to this observable collection:

selectCtrl = new ol.interaction.Select(); drawCtrl = new ol.interaction.Draw();  drawCtrl.on("drawend",function(e){       selectCtrl.getFeatures();       features.push(e.feature); }); 
</div
 
 
 
 
1
 
vote
vote
ベストアンサー
 

それを解決しました。 <コード> ol.interaction.select draw.on('drawend',()) がそれ自体を解決した後に発生します。トリックは、新しい機能が追加された後にFalseを返すように強制することです。詳細については、

selectedFeature.push(evt.feature) var featureadded の使用を参照してください。

http://jsfiddle.net/williemaddox/0um2ud3v/

 

Solved it. ol.interaction.select fires AFTER the draw.on('drawend',()) resolves itself. The trick is to force select.condition to return false after a new feature has been added. See the use of selectedFeature.push(evt.feature) and var featureadded in my jsfiddle for details.

http://jsfiddle.net/williemaddox/0um2ud3v/

</div
 
 
1
 
vote

私のように、描画モードを自動的に残して選択モードに戻り、描画が終了した後(そして機能が選択されている)、次のようなものをすることができます。

<事前> <コード> mySelect = new ol.interaction.Select(); myDraw = new ol.interaction.Draw(); lastDrawnFeature = null; myDraw.on('drawend',function(e){ lastDrawnFeature = e.feature; // switch to select interaction myDraw.setActive(false); mySelect.setActive(true); }); mySelect.on('select',function(e){ if (lastDrawnFeature) { // Actual selection has to be done here, // otherwise the last point drawn will be selected instead. mySelect.getFeatures(); features.clear(); features.push(lastDrawnFeature); lastDrawnFeature = null; } });
 

If, like me, you also want to automatically leave drawing mode and return to selection mode after the drawing ends (and the feature is selected), you can do something like this:

mySelect = new ol.interaction.Select(); myDraw = new ol.interaction.Draw(); lastDrawnFeature = null;  myDraw.on('drawend',function(e){     lastDrawnFeature = e.feature;      // switch to select interaction     myDraw.setActive(false);     mySelect.setActive(true); });  mySelect.on('select',function(e){     if (lastDrawnFeature) {         // Actual selection has to be done here,         // otherwise the last point drawn will be selected instead.         mySelect.getFeatures();         features.clear();         features.push(lastDrawnFeature);         lastDrawnFeature = null;     } }); 
</div
 
 

関連する質問

14  OpenLayers 3で境界がどのように機能しますか?  ( How do bounds work in openlayers 3 ) 
OpenLayers.bounds からOpenLayers 2.xはまだOpenLayers 3に存在しますか?どのように変更されたのか、そしてその新しい名前は何ですか? ...

0  OpenLayers 3テキストファイルレイヤー?  ( Openlayers 3 textfile layer ) 
OpenLayers 2からOpenLayers 3へ移行したいです。 OpenLayers 2ではテキストレイヤーがありました: <事前> <コード> var pois = new OpenLayers.Layer.Text( "Points of Int...

1  OpenLayers 3のIcon Propertyに関する質問3  ( Questions about icon property in openlayers 3 ) 
アンカー、アンカー起源、オフセット、オフセット起源など、アイコンプロパティに関する質問があります。オープンレイヤーWebはより多くの説明を与えなかったので、アンカーやオフセットを変更すると、アイコンの位置を変更し、オフセットとサイズがアイコンを切り取ることがで...

0  マウスカーソルがオーバーレイに隠れていても機能上の変更  ( Mouse cursor changes over features even if they are hidden by an overlay ) 
OpenLayersで機能を移動したときにカーソルを変更しようとしています.3。このコードを使っています: <事前> <コード> map.addInteraction(new ol.interaction.Select({ condition : fun...

0  インタラクションを変更する - ホバリングされたセグメントを取得する方法  ( Modify interaction how to get the segment which has been hovered ) 
OpenLayers-3を使用しています。インタラクションの変更編集するベクトル層多角形/ポリラインが編集されているとき、マウスが線分に近い場合、小さい円が描かれてドラッグすると、セグメント上のどこにあるかに応じて、新しい頂点が作成されるか、または既存の頂点...

-1  Reprojection Geojson Proj4の定義に基づく  ( Reprojection geojson based on proj4 definition ) 
再投影をする必要があります( openlayers3 proj4js )私の gejson epsg:4326、1つのリストオプションをクリックしてください。 <事前> <コード> <select name="projection" id="selec...

0  同じファイル内のオープンレイヤー3とオープンレイヤー2  ( Openlayers 3 and openlayers 2 together in same file ) 
OpenLayers 2とOpenLayers 3の機能を同じファイルに使用できますか?これらの機能は同じではありませんが。たとえば、OpenLayers 2のOpenLayes 2のOpenLayers 2のOpenLayers 2のAPIを使用して、Op...

1  OpenLayers Angularjsは常にGeojson Pointを表示しています。  ( Openlayers angularjs always shows geojson point at 0 0 ) 
質問はこの post 。しかし、それが解決されていないようです(そして私はそれについてコメントすることができません)、私はより多くの情報を与えたいです。 最初に、インラインgeojson 、いくつかのランダムな点を割り当てようとしています: <事前> <コード...

1  角度JSセットOpenLayersウィンドウ要素の寸法を動的にマップします  ( Angular js set openlayers map window element dimensions dynamically ) 
私は、ユーザがブラウザのサイズを変更したときに正しくサイズ変更する必要があるディレクティブからの要素にオープンレイヤー3マッピングされています。 <事前> <コード> wmm.directive('tchOlMap', ['$window', function...

0  OpenLayers 4を使用すると、マーカーがカスタムマップで誤って見られました4  ( Markers got misplaced on custom maps when using openlayers 4 ) 
カスタムマップでのマーカーが表示された(Map ImageはImageTaticを使用してインポートされます)。このマーカー座標はバックエンドから渡されます.AndiLayerの外側の管理テンプレートからデータベースに保存されます。管理者側で配置されているOp...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有