Openlayers hover Effekt?

Hallo, ich habe KML Daten auf eine OSM karte eingebunden. Funktioniert auch super gut.

Nun wollte ich gerne die POI mit einem Hover Effekt versehen das klappt auch soweit, aber nun kann man nicht mehr auf POI draufklicken das das POPUP Fenster an bleibt. Gibt es da eine Möglichkeit.

Das beides geht Hover effekt und Select effect

MFG

Sebbart

buerooeding.de/karte/karte2.html

schau dir am besten mal keepright an. Dort ist das gelöst und Du findest die Lösung da sicher im quelltext.

So gehts:

var eventHandlerHover = new OpenLayers.Control.SelectFeature([linkLayer, wikipediaLayer],
{
	hover: true,
	highlightOnly: true,
	renderIntent: "temporary",
	eventListeners:
	{
		featurehighlighted: linkLayer.events.listeners['featureselected'][0].func,
		featureunhighlighted: linkLayer.events.listeners['featureunselected'][0].func
	}
});
var eventHandlerClick = new OpenLayers.Control.SelectFeature([linkLayer, wikipediaLayer],
{
	multiple: true,
	toggle: true
});
map.addControl(eventHandlerHover);
map.addControl(eventHandlerClick);

Wenn ich das so einrichte wird die Karte nicht mehr angezeigt

du musst natürlich die variablen auch emtsprechend umbenennen…

Danke also der Hover effekt geht und ich kann es dann auch anklicken nur kann ich das Popup Fenster nicht mehr schließen?

bei mir das gleiche :frowning:
allerdings hab ich schon “richtig gut” laufende popups und wollte den hover zusätzlich dazu nehmen. macht die sache komplizierter interessanter aber nicht einfacher.
lg
walter.

Also in OLM hab ich dann noch ein:

wikipediaLayer.events.on({
	featureselected: function(e)
	{
		if (!e.feature.contentHTML)
			e.feature.contentHTML = '<img src=\"../img/loading.gif\" />';
		if (!e.feature.popup)
			e.feature.popup = new OpenLayers.Popup.FramedCloud("popup", new OpenLayers.LonLat(e.feature.geometry.x,e.feature.geometry.y), null, editPopupContent(e.feature.contentHTML), null, true, function(){eventHandlerClick.unselect(e.feature)});
		map.addPopup(e.feature.popup);
		if (e.feature.popup.contentHTML == '<img src=\"../img/loading.gif\" />')
		{
			request = OpenLayers.Request.GET({url: '[http://olm.openstreetmap.de/poitools/details/](http://olm.openstreetmap.de/poitools/details/)'+e.feature.data['id'], async: false});
			e.feature.contentHTML = request.responseText;
			e.feature.popup.setContentHTML(editPopupContent(request.responseText));
			map.removePopup(e.feature.popup);
			map.addPopup(e.feature.popup);
		}
	},
	featureunselected: function(e)
	{
		if (e.feature.popup)
		{
			map.removePopup(e.feature.popup);
			e.feature.popup.destroy();
			e.feature.popup = null;
		}
	}
});

war bei mir schon drin.

aber wenn ich nicht total blind bin, macht OLM garkein hover (ubuntu mit firefox), obwohl die befehle aus dem gestrigen und dem jetzigen beispiel drin sind.

bei “meiner” entwicklung (karte aller hkts :wink: gingen “normale” popups; nach deiner erweiterung kommen zusätzlich hover-popups aber die bleiben dann offen.

check doch bitte nochmal dein OLM, ob da wirklich hover kommen. erst wenn das geklärt ist, macht es (für mich) sinn, hover zu benutzen.

danke
walter

p.s. hkts=hundekottütenspender - ist nur nen test.

In OLM gibt es kein Hover (mehr). Das hatte ich mal in früheren Versionen drin.

das erklärt - ein wenig - meine verwirrung. SO gut sieht das wirklich nicht aus.
ich werde irgendwann nochmal dran “rumdrehen” und mich dann für eine lösung entscheiden (nur popup/nur hover/beides).
“beides” ist irgendwie blöd, weil “doppelt gemoppelt”.

programmieren macht mal wieder richtig spass: 1 tag für das programm und 1 woche für die optik :wink:

gruss
walter