[OpenLayers-Users] Labels/Tooltips on mouse over a Vector layer

Adrian Popa adrian_gh.popa at romtelecom.ro
Thu Jul 16 08:38:00 EDT 2009


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20090716/6bf38e92/attachment.html


More information about the Users mailing list