[OpenLayers-Users] Re: Hover + Popup FAILURE

shitake83 shitake83 at googlemail.com
Wed Mar 2 06:50:18 EST 2011


I have managed to change my script in a way that when i hover the feature,
the hover gets accepted,the popup pops up and if i leave the feature the
popup closes.

so far the only thing im in need of now is a way to stop the popup from
showing up without me having clicked the feature.

the other issue im facing is that whenever i hover in map inwards the old
feature popup wont close anymore and it stays floating where it was (i only
tested features that where close to the edge so i would only hover  one
feature).

and im not able to close the popup with the little red x if it stays on the
map.

heres some code (dont care if you find missing braces or anything i just cut
the code, its working, compiled code, im just having usage issues) :


if (lType==1 || lType==0) {

  alert("loadLayersByColour::loading:Bundeslaender");
		// create a wfs layer with the style map
		states = new OpenLayers.Layer.WFS(
				"Bundesländer",
				"http://111.111.111.111:1111/geoserver/wfs",
				{typename: "MyCard:mystuff"},
				{isBaseLayer: false, extractAttributes: true, styleMap: myStyleMapL}
		);      
		map.addLayers([states]);
    

highlightControl = new OpenLayers.Control.SelectFeature(states,
 {hover: true,
 highlighOnly: true,
 renderIntent: "myStyleMapR",
 eventListeners: {
                    beforefeaturehighlighted: report,
                    featurehighlighted: report,
                    featureunhighlighted: report
}});

var selectedControl = new OpenLayers.Control.SelectFeature(states,
                {clickout: true}
            );

//the order in which you add these lines seems to matter!
map.addControl(selectedControl);
map.addControl(highlightControl);
highlightCtrl.activate();
selectedControl.activate();


// THE DIV UPDATE PART
//this works perfect on another layer on its own		
/*
        states.events.on({"featureselected": function(evt) {
            var feature = evt.feature;
            var regscore =
getregidQ(feature.attributes["rs"].substr(0,2),1,1)
            var promptText = "Land = " + feature.attributes.gen + ", Anzahl
= " +regscore ;
            $("nodelist").innerHTML = promptText;
        }});
		 */
	};


 function onMarkerSelect(event) {
        //unselect any previous selections
        tooltipUnselect(event);
        var feature = event.feature;
        var selectedFeature = feature;
        alert("marker selected DEBUG");
        var popup = new OpenLayers.Popup.FramedCloud("activeAlarm",
                    feature.geometry.getBounds().getCenterLonLat(),
                    new OpenLayers.Size(100,100),
                    "Loading...",
                    null, true, onMarkerPopupClose );
        feature.popup = popup;
        popup.setOpacity(0.7);
        map.addPopup(popup);
        //call ajax to get the data
        loadDetails(feature.attributes.description);
    }
    function onMarkerUnselect(event) {
        var feature = event.feature;
        if(feature.popup) {
        alert("marker unselected DEBUG");
            map.removePopup(feature.popup);
            feature.popup.destroy();
            delete feature.popup;
        }
    }
    function onMarkerPopupClose(evt) {
        select.unselectAll();
    }



--
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Hover-Popup-FAILURE-tp6080261p6080528.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.


More information about the Users mailing list