[OpenLayers-Users] Labels/Tooltips on mouse over a Vector layer
Adrian Popa
adrian_gh.popa at romtelecom.ro
Thu Jul 16 08:49:39 EDT 2009
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.popa at romtelecom.ro <mailto:adrian_gh.popa at 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.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/c63d15c3/attachment.html
More information about the Users
mailing list