システムをOpenlayers2からOpenlayers3にアップグレードしようとしていますが、理解できない特定の問題が1つあります。
私のアプリケーションにはグリッドとマップがあり、ユーザーがグリッドをクリックしたときに、マップ上の関連するポイントを選択したいと思います。
Openlayers 2では、以下を使用しました。
self.selectControl.select(feature[0]);
Openlayers3で同じことを行う方法を見つけたり理解したりできません。
明確にするために、私はプログラムで見つけた機能を持っており、マップ上でその機能を(プログラムで)選択したいと思います!
APIに何も見つからないようですが、Openlayersを初めて使用するため、理解が不足していることが原因である可能性があります。
これを行うには、次のことを行う必要があります。
mySelectControl.getFeatures().clear() -> removes the selected items
mySelectControl.getFeatures().Push(featureToSelect) -> selects the applied feature
var selectInteraction = new ol.interaction.Select(});
map.addInteraction(selectInteraction);
function highlightFeature(feat){
selectInteraction.getFeatures().Push(feat);
selectInteraction.dispatchEvent({
type: 'select',
selected: [feat],
deselected: []
});
}
最新のopenlayers4.5ではcharのように機能します
選択したインタラクションをマップに追加します。
var selectInteraction = new ol.interaction.Select();
map.addInteraction(selectInteraction);
選択する機能を、選択したインタラクションの機能配列に追加します。
selectInteractions.getFeatures().Push(featureToSelect);