[OpenLayers-Dev] Markers and Vector Layer conflict
Alexandre Dube
adube at mapgears.com
Thu Feb 4 08:34:52 EST 2010
Alex,
I just looked at the SelectFeature control code and I think you could
try this solution :
Change you Marker layer for a Vector one (you can define
externalGraphic to a vector feature, see an example [1]) and then
configure your SelectFeature control with both your layers :
var select = new OpenLayers.Control.SelectFeature([vectors, markers],
options);
The SelectFeature control will create a RootContainer layer object
enabling selection on both at the same time, thus fixing your issue.
Please, tell me if that worked.
Hope this helps,
Alexandre
[1] http://openlayers.org/dev/examples/styles-unique.html
Alex G. wrote:
> Hi all,
>
> I am probably having a conflict problem with some of my layers. I
> currently have 3 layers active on my installation:
> - a layer containing the data from a shapefile (running WMS)
> - a vector layer where users can draw
> - a layer dedicated to markers.
>
> I have noticed that if I place a marker, I cannot interact with it
> afterwards unless I hide the vectors layer. The order is correct, I
> load first the shp layer, then the vector one and then the markers one.
>
> I include here some of my code in hope that it will help, it's mostly
> from examples on openlayers so there's really nothing new.
>
> map = new OpenLayers.Map('map',{maxExtent: new
> OpenLayers.Bounds(195441.084706006,4171163.51662705,240142.089176109,4203199.94421431),
> maxResolution: 120, units: 'dd'});
> layer = new OpenLayers.Layer.WMS( 'Landmass ',
> 'http://localhost:8585/cgi-bin/mapserv?map=/opt/fgs/apps/gmap-demo-cvs_MS_VERSION_54/htdocs/gmap75a.map&
> <http://localhost:8585/cgi-bin/mapserv?map=/opt/fgs/apps/gmap-demo-cvs_MS_VERSION_54/htdocs/gmap75a.map&>',
>
> {
> layers: 'zak',
> format:'PNG',
> bbox:
> '195441.084706006,4171163.51662705,240142.089176109,4203199.94421431',
> srs: 'EPSG:4326'
> });
> lakegr_wms = new OpenLayers.Layer.WMS( 'Lakes',
>
> 'http://localhost:8585/cgi-bin/mapserv?map=/opt/fgs/apps/gmap-demo-cvs_MS_VERSION_54/htdocs/gmap75a.map&
> <http://localhost:8585/cgi-bin/mapserv?map=/opt/fgs/apps/gmap-demo-cvs_MS_VERSION_54/htdocs/gmap75a.map&>',
> {
> layers: 'sedi',
> transparent: 'true',
> format: 'image/png'
> },
> {isBaseLayer: false}
> );
> vectors = new OpenLayers.Layer.Vector( 'Editable' );
> vectors.onFeatureInsert=function(feature) {
>
> var wkt=wktwriter.write(feature);
> console.log(wkt);
> }
> map.addLayer(layer);
> map.addLayers([lakegr_wms,vectors]);
> map.addControl(new OpenLayers.Control.LayerSwitcher());
> controls = {
> point: new OpenLayers.Control.DrawFeature(vectors,
> OpenLayers.Handler.Point),
> line: new OpenLayers.Control.DrawFeature(vectors,
> OpenLayers.Handler.Path),
> polygon: new OpenLayers.Control.DrawFeature(vectors,
> OpenLayers.Handler.Polygon),
> drag: new OpenLayers.Control.DragFeature(vectors)
> };
>
> for(var key in controls) {
> map.addControl(controls[key]);
> }
>
>
> map.zoomTo(1);
> var options = {
> hover: true,
> highlightOnly: true
> };
>
> var select = new OpenLayers.Control.SelectFeature(vectors,
> options);
> selectCtrl = new OpenLayers.Control.SelectFeature(vectors,
> {
> clickout: true,
> onSelect: serialize
> }
> );
> map.addControl(select);
> map.addControl(selectCtrl);
> select.activate();
> selectCtrl.activate();
> *
> * Inherits from:
> var markers = new OpenLayers.Layer.Markers( 'Markers' );
> map.addLayer(markers);
>
> Rest of the code is taken from the markers example on OpenLayers.
>
> Can anyone think of any reason why they would conflict? I am thinking
> it has something to do with clicks and some of the controls I use
> might be conflicting although I can't see any Javascript errors.
>
> Thanks in advance.
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Dev mailing list
> Dev at openlayers.org
> http://openlayers.org/mailman/listinfo/dev
>
--
Alexandre Dubé
Mapgears
www.mapgears.com
More information about the Dev
mailing list