Hi,

I'd like to have markers on the map that have a baloon appear when I click
them, and are also draggable. I've created an OpenLayers map with markers
using a vector layer. When I click on the markers I'd like a baloon to pop
up (a FramedCloud). That's easy enough - I added a SelectFeature control
which, when clicked, add a FramedCloud to the map. Secondly, I'd like those
markers to be draggable, so I added a DragFeature control to the vector
layer.
It look like those two Controls can't co-exist. If I add them both, the
SelectFeature control doesn't work.

I've put a quick example up at
http://www.humphreys.be/james/selectanddrag/selectanddrag.html
Here I've activated both features, so only "drag" works. You can download
the selectanddrag.HTML and selectanddrag.JS file to your PC, modify and play
with them. If you switch off the dragFeature, the selectControl works fine.

I saw this has been discussed before, back in Feb:
http://osgeo-org.1803224.n2.nabble.com/Click-on-OpenLayers-Feature-Vector-td4631284.html
According to this post the two Controls simply aren't compatible.

Has the situation changed? Does anyone know how I can create a marker that
can have a bubble appear when I click it AND is draggable?
I'd love to hear anyone's opinion on this before I delve head first into
writing my own custom control (and I'm not that great at Javascript so it
could take a while...)

Thanks,


James


Here's a code snippet:

map = new OpenLayers.Map('map');

var layer = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
    map.addLayer(layer);

placesVL = new OpenLayers.Layer.Vector("My places", {... });
map.addLayer(placesVL);

var marker1 = new OpenLayers.Feature.Vector(getPoint(-0.58, 51.8));
var marker2 = new OpenLayers.Feature.Vector(getPoint(-0.53, 51.2));
placesVL.addFeatures([marker1, marker2]);

selectControl = new OpenLayers.Control.SelectFeature(placesVL,
                {onSelect: onFeatureSelect, onUnselect: onFeatureUnselect});
map.addControl(selectControl);
selectControl.activate();

var dragFeature = new OpenLayers.Control.DragFeature(placesVL,
{'onComplete': onDragPlaceComplete});
map.addControl(dragFeature);
dragFeature.activate();
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users

Reply via email to