Hi Andreas,
thank you very much for your help!
Now it works but I am still not totally satisfied by the solution: I think it
is not the most intuitive way for endusers to first click a feature to be able
to drag it then. It might cause some irritation and the impression that
dragging works not properly. Does somebody know an alternative way to achieve
the desired behavior? Is this a conceptional problem of OpenLayers or is there
any chance trying to patch this annoyance?
Regards,
Christoph
Am 25.02.2010 um 20:37 schrieb Andreas Hocevar:
> Christoph Lingg wrote:
>> Hi Andreas,
>> thank you for your help!
>> I have alreade tried to use the SelectFeature class. But a strange
>> behaviour appears when combing it with the DragFeature: i can click
>> the feature only once. If i don't use the DragFeature the
>> SelectFeature works like expected. I created a working example of
>> that phenomena, see at the bottom. If you disable the dragFeature the
>> selectFeature works like expected, maybe this is even a bug...?
>
> Not necessarily a bug, but an annoyance that has to do with the way
> OpenLayers controls work.
>
> One proper way to deal with this would be to have the DragFeature control
> deactivated by default, and activate it in the featureselected handler. In
> the onComplete callback of the DragFeature control, you can deactivate the
> DragFeature control and re-activate the SelectFeature control.
>
> Regards,
> Andreas.
>
>> Cheers, Christoph
>> layer = new OpenLayers.Layer.Vector("layer"); map.addLayers([layer]);
>> drag = new OpenLayers.Control.DragFeature(layer); map.addControl(drag);
>> drag.activate();
>> click = new OpenLayers.Control.SelectFeature( [layer], { clickout:
>> true, toggle: false, multiple: false, hover: false, toggleKey:
>> "ctrlKey", // ctrl key removes from selection multipleKey: "shiftKey"
>> // shift key adds to selection } ); map.addControl(click); layer.events.on({
>> "featureselected": function(e) { alert('selected');
>> }, "featureunselected": function(e) { alert('unselected'); } });
>> click.activate();
>> ftr = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1,
>> 2)); // an icon layer.addFeatures([ftr]);
>> ----- Original Message ----- From: [email protected] To:
>> [email protected] Date: 25.02.2010 14:36:48 Subject: Re:
>> [OpenLayers-Users] Click on OpenLayers.Feature.Vector
>>> Hi,
>>> you need to create an OpenLayers.Control.SelectFeature instance, configure
>>> it with your vector layer, and add it to the map. You can
>>> then listen for the layer's "featureselected" event.
>>> See the [1] example if you need a code snippet. The example does
>>> exactly the same, but on two different layers instead of just one.
>>> Regards, Andreas.
>>> [1]
>>> http://openlayers.org/dev/examples/select-feature-multilayer.html
>>> Christoph Lingg wrote:
>>>> Hello!
>>>> I changed from GoogleMap to OpenLayers, and although I enjoy to
>>>> use the opensource equivalent, sometimes I feel lost in the OL
>>>> documentation ;-)
>>>> Would anyone be so kind and could give me hint how to achieve
>>>> this very low level problem: I have a Vector Layer (I can't use
>>>> marker class as I use the dragging feature as well) to which I
>>>> add some Feature Vector, that are displayed on the map. What I
>>>> need now is triggering an event when a feature was clicked. Very
>>>> basically my code looks like this:
>>>>> layer = new OpenLayers.Layer.Vector("layer"); map.addLayers([layer]); ftr
>>>>> = new OpenLayers.Feature.Vector(new
>>>>> OpenLayers.Geometry.Point(lon, lat), null, styleMarker); // an
>>>>> icon layer.addFeatures([ftr]);
>>>> I tried different approaches that never worked out! What is the
>>>> right way to go?
>>>> Thank you in advance for any help!
>>>> Christoph
>>>> _______________________________________________ Users mailing
>>>> list [email protected] http://openlayers.org/mailman/listinfo/users
>>> -- Andreas Hocevar OpenGeo - http://opengeo.org/ Expert service
>>> straight from the developers.
>
>
> --
> Andreas Hocevar
> OpenGeo - http://opengeo.org/
> Expert service straight from the developers.
_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users