private void GetLayerNode(Layer lyr, XmlDocument doc)
        {
            Layer plyr = MapView.Active.Map.FindLayer(lyr.URI, true);


            MapMember mm = lyr;
            XmlNode   lnd;

            lnd = doc.SelectSingleNode("//Layers/String[text()='" + lyr.URI + "']");
            CIMService cs = new MapMemberService((MapMember)lyr);
            //var xmlLayer = GetlayerDefinitionAsync(lyr);
            var xmlLayer = cs.GetDefinitionAsync();
            XmlDocumentFragment xfrag = doc.CreateDocumentFragment();

            xfrag.InnerXml = xmlLayer.Result;
            XmlNode nd = xfrag.FirstChild;

            switch (lyr.GetType().Name)
            {
            case "GroupLayer":
                lnd.AppendChild(xfrag);
                GroupLayer glyr = (GroupLayer)lyr;
                foreach (var layer in glyr.Layers)
                {
                    lnd = doc.SelectSingleNode("//Layers/String[text()='" + lyr.URI + "']");
                    GetLayerNode(layer, doc);
                }
                break;

            case "FeatureLayer":
                var cfl = CIMFeatureLayer.FromXml(xmlLayer.Result);

                GetRenderer(cfl.Renderer, nd, ReportDir);
                lnd.AppendChild(nd);
                break;

            case "RasterLayer":
                var crl = CIMRasterLayer.FromXml(xmlLayer.Result);
                //GetRenderer(crl., nd, ReportDir);
                lnd.AppendChild(nd);
                break;

            case "StandaloneTable":
                lnd = doc.SelectSingleNode("//StandaloneTables/String[text()='" + lyr.URI + "']");
                lnd.AppendChild(nd);
                break;

            default:
                lnd.AppendChild(nd);
                break;
            }
        }
Beispiel #2
0
 private void InitRaster(CIMRasterLayer layer)
 {
     InitDataConnection(layer.DataConnection);
 }