btw. here is the adapted code example for anyone who might be interested in it:
layer = new OpenLayers.Layer.Vector("layer");
map.addLayers([layer]);
drag = new OpenLayers.Control.DragFeature(layer);
map.addControl(drag);
//drag.activate();
drag.onComplete = function(f) {
drag.deactivate();
click.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) {
drag.activate();
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]);
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