2017-06-06 5 views
2

ol4のol.featureを手動で選択する可能性はありますか?私は投稿hereを見ましたが、私は同じ問題があります:カスタム選択スタイルは適用されません。プログラムによる選択を通常の選択(マップ内)として機能させるための回避策はありますか?開いているレイヤーで選択イベントをプログラムでトリガーする4

+0

私はopenlayers 4のバグだと思っています。私は同じ問題(ここではhttps://stackoverflow.com/questions/44264227/openlayers-4-11-no-style-applied-when-programatically-selecting-a-featureで説明した)で数時間を過ごしましたが、それでも何も表示されません。 – Andrei

答えて

0

私が解決しなければならなかった問題は、ユーザーが外部テーブルのレコードをクリックした場合、その機能のポップアップを表示する必要がありました。これが問題の解決方法です。

  1. 地図を描画するときに、レイヤーのソースである機能のリストをグローバル変数に保存しました。
  2. ユーザーがテーブルのレコードをクリックすると、そのレコードのIDが取得されます。
  3. 機能を取得する - layerSource.getFeatureById(id)
  4. ポップアップを描画します。

スタイルを設定する必要がある場合は、マップから古いベクターレイヤーを削除してレイヤーをもう一度再描画する必要があると思います。スタイルでは、選択したフィーチャに異なるスタイルを返す関数を使用する必要があります。

+0

私の問題は、どのようにしてol.interaction.selectスタイルを渡すための手動の 'select'イベントを作ることができるかです。私はその機能を持っている、私は相互作用を持って、私は(相互作用に与えられた)選択スタイルの機能を持っていますが、私はどのようにマップからプログラム的な選択をするためにそれらを結合するkowをしない。私はこのコードを持っています: 'selectControl.getFeatures()。push(featureToSelect); selectControl.dispatchEvent({ \t \t \tタイプ: '選択' \t \t \tが選択:[featureToSelect]、非選択 \t \t \t:[]、 }); '私の選択スタイルが適用されません。デフォルトの選択スタイルが適用されます。 –

関連する問題