Hello Sajeer,

How do you register your functions to events so that they are executed on mouse over instead of on click? Or is your popup created when you click a feature?

Thanks,
Adrian

Sajeer... wrote:
*

Hi,

try this one,

function

* onFeatureSelect(feature) {

selectedFeature = feature;

popup =

*new*
OpenLayers.Popup.FramedCloud("",

feature.geometry.getBounds().getCenterLonLat(),

*new* OpenLayers.Size(100,100), "<div style='padding:15px 5px 5px 10px;'>"+ "<table style='font-size:13px;color:red'>"+ "<tr>"+ "<td width='40%'>Name</td>"+ "<td width='5%'>:</td>"+ "<td>"+feature.attributes.label+"</td>"+ "</tr>"+ "</table></div>", *null*, *true*, onPopupClose);

feature.popup = popup;

map.addPopup(popup);

}

*function* onPopupClose(evt) {

selectControl.unselect(selectedFeature);

}

*function* onFeatureUnselect(feature) {

*      *map.removePopup(feature.popup);

feature.popup.destroy();

feature.popup = *null*;

}

var  kmlLayer = new OpenLayers.Layer.GML(.............);

var selectControl = *new* OpenLayers.Control.SelectFeature(kmlLayer,

{hover: *true*,onSelect: onFeatureSelect, onUnselect: onFeatureUnselect});

map.addControl(selectControl);

selectControl.activate();


Regards

Sajeer


On Thu, Jul 16, 2009 at 3:07 PM, Adrian Popa <[email protected] <mailto:[email protected]>> wrote:

    Hello Pavel,

    Great idea... However - I would like to keep popups for when I
    click on an item.
    Would it be possible to do something like:

    layer.events.on({ "featureselected": onLocationSelect,
    "featureunselected": onLocationUnselect,  //open regular popups
                                      "onMouseOver":
    onLocationMouseOver, "onMouseOut": onLocationMouseOut
     });?

    Problem is - I don't see those kinds of events on my layer. These
    are the event types for a vector layer:
    0 "beforefeatureadded"
    1 "beforefeaturesadded"
    2 "featureadded"
    3 "featuresadded"
    4 "beforefeatureremoved"
    5 "featureremoved"
    6 "featuresremoved"
    7 "beforefeatureselected"
    8 "featureselected"
    9 "featureunselected"
    10 "beforefeaturemodified"
    11 "featuremodified"
    12 "afterfeaturemodified"
    13 "vertexmodified"
    14 "sketchstarted"
    15 "sketchmodified"
    16 "sketchcomplete"
    17 "refresh"
    18 "loadstart"
    19 "loadend"
    20 "loadcancel"
    21 "visibilitychanged"
    22 "move"
    23 "moveend"

    Any idea what the events would be? If they are supported?

    Pavel Iacovlev wrote:
    There many possible ways around this problem.

    One is rewrite/extend your popup code. Popup is triggered on mouseover
    and on mouseout popup is hidden. You can style the popup so it looks
    more like a tooltip/label.

    On Thu, Jul 16, 2009 at 2:34 PM, Adrian
    Popa<[email protected]> <mailto:[email protected]> 
wrote:
    Hi,

    Just a quick question - my users want to see the name of the city when
    they are hovering over points loaded through KML in a vector layer. I
    know this isn't supported, but are there plans to support such labels?

    I'm thinking a different strategy might be to override/inherit the
    OpenLayers.Control.MousePosition class and based on coordinate changes,
    load the name from the closest KML feature. It doesn't need to be too
    accurate, but it can't be an exact match, because the mouse will never
    get that close to the KML coordinates.
    However this solution will be costly - because on every mouse move you
    would have to go through all the KML items and see which match...

    What are your ideas regarding this subject?

    ---

    Adrian Popa
    NOC Division
    Network Engineer
    Divizia Centrul National de Operare Retea
    Departament Transport IP & Metro
    Compartiment IP Core & Backbone
    Phone: +40 21 400 3099

    _______________________________________________
    Users mailing list
    [email protected] <mailto:[email protected]>
    http://openlayers.org/mailman/listinfo/users



-- --- Adrian Popa
    NOC Division
    Network Engineer
    Divizia Centrul National de Operare Retea
    Departament Transport IP & Metro
    Compartiment IP Core & Backbone
    Phone: +40 21 400 3099

    _______________________________________________
    Users mailing list
    [email protected] <mailto:[email protected]>
    http://openlayers.org/mailman/listinfo/users



_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users

Reply via email to