[OpenLayers-Users] combining handlers, or hover + select

Jesse V Griffis jvgriffis at gmail.com
Tue Feb 3 10:17:45 EST 2009


Alexandre,

Thanks so much!  I like your highlighter, very nice - but the key was
the layer.getFeatureFromEvent method that I didn't know existed.  That
does exactly what I need.

Jesse


On Tue, Feb 3, 2009 at 9:13 AM, Alexandre Dube <adube at mapgears.com> wrote:
> Hi Jesse,
>
> What I did to accomplish this is a custom "HighlightFeature" control. You
> can have it and a SelectFeature at the same time.
>
> See an example :
>
> http://dev.openlayers.org/sandbox/adube/openlayers/examples/highlight-feature.html
>
> See an example with SelectFeature at the same time :
>
> http://dev4.mapgears.com/bdga/bdgaWFS-T.html
>
> Of course this is only a possible solution among many others. Others should
> have more ideas.
>
> Alexandre
>
> Jesse V Griffis wrote:
>>
>> Thanks Eric,
>>
>> I wasn't sure if dumping a bunch of code to the list would be useful.
>>
>> Essentially, I just copied the Hover Control from the example page
>> (http://openlayers.org/dev/examples/hover-handler.html) and tried to
>> copy the stuff from the SelectFeature Control (in the source).
>>
>> Testing it, I know the hover/pause part of this is working, but I
>> can't figure out how to apply the selection piece.  Please don't laugh
>> too hard:
>>
>> OpenLayers.Control.Hover = OpenLayers.Class(OpenLayers.Control,
>>  {
>>    layer: null,
>>
>>    isPaused: false,
>>
>>    defaultHandlerOptions: {
>>    'delay': 1000,
>>    'pixelTolerance': 1,
>>    'stopMove': false
>>    },
>>
>>    initialize: function(layer, options)
>>    {
>>      this.layer = layer;
>>      this.handlerOptions = OpenLayers.Util.extend(
>>        {}, this.defaultHandlerOptions
>>      );
>>      OpenLayers.Control.prototype.initialize.apply(
>>        this, arguments
>>      );
>>
>>      this.handlers = {
>>        feature: new OpenLayers.Handler.Feature(
>>          this, this.layer, { 'over': this.over}, {}
>>        ),
>>        hover: new OpenLayers.Handler.Hover( this,
>>          {'pause': this.onPause, 'move': this.onMove}, this.handlerOptions
>>        )
>>      }
>>    },
>>
>>    draw: function() {
>>      return false;
>>    },
>>
>>    activate: function() {
>>      this.handlers.feature.activate();
>>      this.handlers.hover.activate();
>>    },
>>
>>    deactivate: function() {
>>      this.handlers.feature.deactivate();
>>      this.handlers.hover.deactivate();
>>    },
>>
>>
>>    onPause: function(evt) {
>>      this.isPaused = true;
>>    },
>>
>>    onMove: function(evt) {
>>      this.isPaused = false;
>>    },
>>
>>    over: function(feature) {
>>      if ( this.isPaused)
>>      {
>>        console.log(feature);
>>      }
>>    }
>>  });
>>
>>
>>
>> On Tue, Feb 3, 2009 at 1:03 AM, Eric Lemoine <eric.c2c at gmail.com> wrote:
>>
>>>
>>> Hi
>>>
>>> It is hard to help you without seeing actual code. Feel free to come
>>> back to the list with your code.
>>>
>>> Cheers,
>>>
>>> Eric
>>>
>>> 2009/2/3, Jesse V Griffis <jvgriffis at gmail.com>:
>>>
>>>>
>>>> Greetings,
>>>>
>>>> I can successfully use the hover examples to create a "Hover" Control
>>>> that uses the Hover handler to pop up info when you pause in one place
>>>> long enough.  I can successfully use the SelectFeature Control to
>>>> click and display info about Vectors.
>>>>
>>>> What I can't figure out is how to combine them, and make a pause on
>>>> the map select the feature under the mouse.  It's frustrating to get
>>>> so close and yet be so far.
>>>>
>>>> Does anyone have an example of this?
>>>>
>>>> Thanks,
>>>>
>>>> Jesse
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at openlayers.org
>>>> http://openlayers.org/mailman/listinfo/users
>>>>
>>>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at openlayers.org
>> http://openlayers.org/mailman/listinfo/users
>>
>
>
> --
> Alexandre Dubé
> Mapgears
> www.mapgears.com
>
>



More information about the Users mailing list