[OpenLayers-Dev] multipleSelectFeature on one layer

Alexandre Dube adube at mapgears.com
Fri Jan 23 13:40:12 EST 2009


Hi devs,

  I would like to propose some changes about the SelectFeature control.

  First, I'll introduce what I want to do : I want to change the color 
of a feature while the mouse is over it without selecting it.  I managed 
to do this by building a customized control similar to the SelectFeature 
control named HighlightFeature.  I shared the code and some people 
showed interest in this feature.  In fact, it was a good enough to be 
added to trunk but there was a problem : it's too similar to the 
SelectFeature control. 

  My first new option was to modify the SelectFeature control to be able 
to select and highlight.  That's what I did, but I hit a wall : I needed 
to add more new events "beforefeaturehighlighted", "featurehighlighted", 
etc.  a new array of highlightedFeatures, etc...  That also became a 
pain because it was yet an other duplication of something already 
existant ( similair "select" feature events, an array of selected 
features, etc....)

  SO, that brings me to this solution, the first one Eric Lemoine 
proposed : an array of selectedFeatures and select events for the 
control ( without removing the ones of the layer ).  Doing that, one 
vector layer could have multiple select feature controls that would know 
which feature it has selected, they could all have a different 
renderIntent value ( this is already possible ) or their own style.  
Then, the user could interact directly with the desired control's 
selectedFeatures.

  My example : One SelectFeature that select on click, has the default 
render intent "select", on which I register a "featureselected" to 
display a form to fill.  And one other SelectFeature that select on 
hover, has a custom render intent "temporary" to have a different color 
and an event registered to "featureselected" to display a quick popup of 
the infos of the hovered feature.

  Even my DeleteFeature control I created a couple of weeks ago could 
work by using an other SelectFeature control and using its own 
featureSelected array.

  I'll make thoses small changes, an example and propose this as an 
enhancement.  What do you think ?

  Regards,

-- 
Alexandre Dubé
Mapgears
www.mapgears.com




More information about the Dev mailing list