2016-12-30 3 views
0

が、私は私のマップ内の異なるソースを持つ2つの以上のベクタレイヤーを持って、私は特定ソースで機能をクリックして、いくつかのポップアップを表示したいです。私の方法は、マップ上に単一のクリックイベントを追加し、source.getFeaturesAtCoordinate(evt.coordinate)を使用していますが、常に空の結果[]が表示されます。この状況で私は何ができますか?OL3:特定のベクトルソースのポイントフィーチャを判断するにはどうすればいいですか? OL3を建てる私のウェブサイトで

+0

各ベクターレイヤーが1つのソース(同じではない)に設定されているかどうかを確認します。 'setSource()'メソッドを使ってソーススイッチングが行われているかどうか? –

+0

@SumanthShastry例えば、私は2つの異なるベクトルソースとそれらを使った2つのベクトルレイヤーを持っています。それらを両方ともマップに追加し、クリックしてソースを選択したポイントフィーチャを決定する方法は? –

答えて

0

ポイントについて、あなたは正確な座標ヒットすることが非常に幸運であることが必要です。レンダリングされたポイントのサイズを考慮する必要があります。そのためには、ol.Map#forEachFeatureAtPixel()を使用することをお勧めします。

map.forEachFeatureAtPixel(evt.pixel, function(feature, layer) { 
    // get the source 
    source = layer.getSource(); 
    // do something with the feature 
}); 
関連する問題