Ejemplo n.º 1
0
            public void AddCrs(string crs)
            {
                // crs is readonly.
                Debug.Assert(crs != null, "CRS must have any value!");
                var crsId = WmsCreator.AddCrs(crs);

                // CRS can occur repeatedly in parents (even in layer itself).
                for (var layer = this; layer != null; layer = layer.Parent)
                {
                    foreach (var id in layer.crsIds.Keys)
                    {
                        if (id == crsId)
                        {
                            return;
                        }
                    }
                }

                crsIds.Add(crsId, null);
            }
Ejemplo n.º 2
0
            public Layer Create(Wms wms)
            {
                // This object is readonly.
                Layer layer;

                if (layers.Count > 0)
                {
                    layer = new BranchLayer(wms);
                }
                else
                {
                    layer = new LeafLayer(Name, wms);
                }

                try
                {
                    layer.node             = new TreeNode(Title);
                    layer.node.Tag         = layer;
                    layer.node.Checked     = true;
                    layer.node.ToolTipText = Description;
                    var crsIdsArray = new int[crsIds.Count];
                    layer.CrsIds = crsIdsArray;
                    crsIds.Keys.CopyTo(crsIdsArray, 0);
                    layer.ImageFormat = WmsCreator.GetBestSupportedFormat();

                    foreach (var creator in layers)
                    {
                        var subLayer = creator.Create(wms);
                        layer.Nodes.Add(subLayer.node);
                    }
                }
                catch (Exception)
                {
                    layer.Dispose();
                    throw;
                }

                return(layer);
            }