x

select und select-hover gleichzeitig auf Feature Elemente


Geschrieben von Lamce (Gast) am 04. April 2013 17:09:45: [flux]

Guten Tag,

Ich arbeite gerade an einem Informationssystem welches Popup Features darstellen soll.

Zu einem sollen per select-hover die Popups ersscheinend und zum anderen soll durch das Klicken des Feature ein weiteres Informationfenster aufgehen.

Nun gibt es ja das SelectFeature Control welches select bzw hover event verwaltet.

Eigentlich funktioniert es.. das Problem ist nur, dass das Klick-Event sehr schlecht reagiert!
Solange das Popup durch das Hover geöffnet ist lässt sich das Feature nicht anklicken. Man muss mit der Maus so lange am Feature rumfuchteln bis das Popup verschwindet und dann erst reagiert das select/klick.

Ich weiß, dass wenn man das Select vor dem Hover aktiviert reagiert das Select überhaupt nicht. In der richtigen Reihenfolge angewendet ist es nicht Benutzerfreundlich bzw. nicht akzeptabel.

var␣mouseoverfeature␣=␣new␣OpenLayers.Control.SelectFeature(kml,␣{
hover:true,
onSelect:␣onFeatureOver,
onUnselect:␣onFeatureOut
});
map.addControl(mouseoverfeature);
mouseoverfeature.activate();
var␣mouseselectfeature␣=␣new␣OpenLayers.Control.SelectFeature(kml,␣{
onSelect:␣onFeatureSelect
});
map.addControl(mouseselectfeature);
mouseselectfeature.activate();
function␣onFeatureOver(feature)␣{
var␣selectedFeature␣=␣feature;
var␣popup␣=␣new␣OpenLayers.Popup.FramedCloud("chicken",
feature.geometry.getBounds().getCenterLonLat(),
new␣OpenLayers.Size(100,100),
"<h2>"+feature.attributes.name␣+␣"</h2>"␣+␣feature.attributes.description,
null,␣true,␣onPopupClose
);
feature.popup␣=␣popup;
map.addPopup(popup);
}
function␣onFeatureOut(feature)␣{
if(feature.popup)␣{
map.removePopup(feature.popup);
feature.popup.destroy();
delete␣feature.popup;
}
}
function␣onFeatureSelect(feature)␣{
//zeige␣weitere␣informationen
}

Ich hoffe ihr kennt einen Trick damit das Select flüssig abläuft. Würde mir sehr viel helfen!!

mfg
Lamce


Antworten: