[OpenLayers-Users] How to remove vector layer properly or just peieces of a vector layer?

Tobias Reinicke ramotswa at gmail.com
Wed Oct 31 04:23:01 PDT 2012


Hi Miguel,

You'll have to use the map getlayersby function to actually grab the layer.
so
http://dev.openlayers.org/docs/files/OpenLayers/Map-js.html#OpenLayers.Map.getLayersByName

so something like (untested)

var myLayer = map.getLayersByName('LineLayer');
myLayer[0].destroy();

getLayersByName returns an array, and as long as you only have one layer
called "LineLayer" you can use the [0] (first) entry of that array.

Give that a go.

Toby




On 31 October 2012 11:19, miguel <juanabreu at hotmail.com> wrote:

> ** **
>
> Hi guys I’ve been racking my head on how to remove just the vector layer
> from my map. Below is my code I  have a function call killLayer(), but it
> does not work at all I have try different variations. So I just need to
> understand if I add a layer in my init function, how can I get a reference
> to that layer to remove later on from another function. In this case my
> vector layer. I would like to remove it and just keep the base layer. Any
> help would be immensely appreciated.****
>
> Miguel****
>
> ** **
>
> My Code:****
>
> ** **
>
>                    var map;****
>
>                    var lineLayer = new
> OpenLayers.Layer.Vector("LineLayer");****
>
>                    var mapBounds = new OpenLayers.Bounds( 0.0, -906.0,
> 800.0, 0.0);****
>
>                     var mapMinZoom = 0;****
>
>                     var mapMaxZoom = 7;****
>
> ** **
>
>                    // avoid pink tiles****
>
>                    OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;****
>
>                    OpenLayers.Util.onImageLoadErrorColor = "transparent";*
> ***
>
> ** **
>
>                    function init(){****
>
>                        var navigation_control = new
> OpenLayers.Control.Navigation({});****
>
>                        var controls_array = [****
>
>                                     navigation_control,****
>
>                                     new OpenLayers.Control.PanZoomBar({}),
> ****
>
>                                     new
> OpenLayers.Control.LayerSwitcher({}),****
>
>                                     new OpenLayers.Control.Permalink(),***
> *
>
>                                     new
> OpenLayers.Control.MousePosition({})****
>
>                                     ];****
>
>                 ****
>
>                 ****
>
>                 var options = {****
>
>                      controls: [],****
>
>                        maxExtent: new OpenLayers.Bounds(  0.0, -906.0,
> 800.0, 0.0 ),****
>
>                        maxResolution: 4.000000,****
>
>                        numZoomLevels: 8****
>
>                           };****
>
>     //{controls: controls_array}****
>
>                    map = new OpenLayers.Map('map', options ); ;****
>
>                      ****
>
>                 //tile map service TMS stands for tile map service.****
>
>                    var layer = new OpenLayers.Layer.TMS( "TMS Layer","",**
> **
>
>                        {  url: '', serviceVersion: '.', layername: '.',
> alpha: true,****
>
>                            type: 'png', getURL: overlay_getTileURL ****
>
>                            });****
>
>                    map.addLayer(layer);****
>
>                      map.zoomToExtent( mapBounds );  ****
>
>                      ****
>
>                      ****
>
>                      ****
>
>                      //create the new layer vector layer which includes
> all the drawings.****
>
>                      /*here im addding to lines separate line segments.*/*
> ***
>
>                      ****
>
>                      map.addLayer(lineLayer);****
>
>                      ****
>
>                      var points = new Array(****
>
>                      new OpenLayers.Geometry.Point(56.0000, -244) ,  //x
> and y cordinate of first point****
>
>                      new OpenLayers.Geometry.Point(368,-248)       //x and
> y cordinate of the second point****
>
>                                            ****
>
>                      );****
>
>                      ****
>
>                      var second_segment = new Array(****
>
>                      new OpenLayers.Geometry.Point(480,-230),  //x and y
> cordinate of first point****
>
>                      new OpenLayers.Geometry.Point(668,-250)  //x and y
> cordinate of first point****
>
>                      );****
>
>                      ****
>
>                      ****
>
>                      ****
>
>                      var line  = new
> OpenLayers.Geometry.LineString(points);****
>
>                      var line2  = new
> OpenLayers.Geometry.LineString(second_segment);****
>
>                      ****
>
>                      var style={****
>
>                      strokeColor: '#0000ff',  ****
>
>                       strokeOpacity: 0.5, ****
>
>                       strokeWidth: 6};****
>
>                      ****
>
>                      var lineFeature = new OpenLayers.Feature.Vector(line,
> null, style);****
>
>                      var lineFeatureN = new
> OpenLayers.Feature.Vector(line2, null, style);****
>
>                      lineLayer.addFeatures([lineFeature]);****
>
>                      lineLayer.addFeatures([lineFeatureN]);****
>
>                      ****
>
>                 ****
>
>                      ****
>
>                                      ****
>
>                      ****
>
>                  map.addControl(new OpenLayers.Control.PanZoomBar());****
>
>                  map.addControl(new OpenLayers.Control.MousePosition());**
> **
>
>                  map.addControl(new OpenLayers.Control.MouseDefaults());**
> **
>
>                  map.addControl(new OpenLayers.Control.KeyboardDefaults());
> ****
>
> ** **
>
>              }****
>
> ** **
>
>              function killLayer() {****
>
>                  //map.removeLayer("LineLayer");****
>
>                  //lineLayer.destroy();****
>
>                 //map.destroy("LineLayer");****
>
>                 lineLayer.removeFeatures(lineFeature);****
>
>             }****
>
> ** **
>
> _______________________________________________
> Users mailing list
> Users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/openlayers-users/attachments/20121031/072c0f5b/attachment-0001.html>


More information about the Users mailing list