Thank you Sajeer,

To make it clear for me: you would register the "featureselected" event for mouse over? Where do you specify hover:true/hover:false? I'd like to be able to keep featureselected for when the user actually clicks on the feature - so I'd like to register 2 events to generate 2 different popups...

Regards,
Adrian

Sajeer... wrote:
you can register this function for click event by replacing hover:true with hover:false * *
Regards

Sajeer



On Thu, Jul 16, 2009 at 3:38 PM, Adrian Popa <adrian_gh.p...@romtelecom.ro <mailto:adrian_gh.p...@romtelecom.ro>> wrote:

    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
    <adrian_gh.p...@romtelecom.ro
    <mailto:adrian_gh.p...@romtelecom.ro>> 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<adrian_gh.p...@romtelecom.ro> 
<mailto:adrian_gh.p...@romtelecom.ro> 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
        Users@openlayers.org <mailto:Users@openlayers.org>
        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
        Users@openlayers.org <mailto:Users@openlayers.org>
        http://openlayers.org/mailman/listinfo/users






_______________________________________________
Users mailing list
Users@openlayers.org
http://openlayers.org/mailman/listinfo/users

Reply via email to