クラスのSelectFeature
メソッドは、イベントをControl
リッスンすることでベクター レイヤーにポップアップを追加および削除する方法を提供します。以下は、openlayers Web サイトの例から取得したサンプル コードを示しています。featureselected
featureunselected
// create the layer with listeners to create and destroy popups
var vector = new OpenLayers.Layer.Vector("Points",{
eventListeners:{
'featureselected':function(evt){
var feature = evt.feature;
var popup = new OpenLayers.Popup.FramedCloud("popup",
OpenLayers.LonLat.fromString(feature.geometry.toShortString()),
null,
"<div style='font-size:.8em'>Feature: " + feature.id +"<br>Foo: </div>",
null,
true
);
feature.popup = popup;
map.addPopup(popup);
},
'featureunselected':function(evt){
var feature = evt.feature;
map.removePopup(feature.popup);
feature.popup.destroy();
feature.popup = null;
}
}
});
vector.addFeatures(features);
// create the select feature control
var selector = new OpenLayers.Control.SelectFeature(vector,{
hover:true, # this line
autoActivate:true
});
上記のコードにより、Geometry オブジェクト (地図上のアイコンまたはマーカー) にマウスオーバーするとポップアップが表示されます。線hover:true
を削除すると、Geometry オブジェクトをマウスでクリックしたときにのみポップアップが表示されます。
私が望むのは、マウスオーバー時にあるタイプのポップアップ (画像とタイトルなど) を表示し、マウスクリック時に別のタイプ (例、詳細な説明) を表示できるようにすることです。どうすればこれができるのかわかりません。いくつかの助けをいただければ幸いです。ありがとう。