private void exportMapContent(string xml, string outputDir)
        {
            var doc = new XmlDocument();

            doc.LoadXml(xml);
            XmlNodeList nodelist = doc.ChildNodes;
            Map         map      = MapView.Active.Map;
            var         cm       = CIMMap.FromXml(xml);

            foreach (var layer in cm.Layers)
            {
                Layer lyr = map.FindLayer(layer, true);

                GetLayerNode(lyr, doc);
            }
            foreach (var st in cm.StandaloneTables)
            {
                StandaloneTable tbl = map.FindStandaloneTable(st);
                XmlNode         lnd;
                lnd = doc.SelectSingleNode("//StandaloneTables/String[text()='" + tbl.URI + "']");
                CIMService          cs       = new MapMemberService((MapMember)tbl);
                var                 xmlLayer = cs.GetDefinitionAsync();
                XmlDocumentFragment xfrag    = doc.CreateDocumentFragment();
                xfrag.InnerXml = xmlLayer.Result;
                XmlNode nd = xfrag.FirstChild;
                lnd.AppendChild(nd);
            }
            string str = TransformDocument(doc.InnerXml, System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), @"Stylesheet\CIMMap.xslt"), System.IO.Path.Combine(outputDir, MakeValidFileName(map.Name)));
        }
Ejemplo n.º 2
0
        protected async override void OnClick()
        {
            await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
            {
                ArcGIS.Desktop.Mapping.Map mappa = ProAddInSR.funzioniVariabiliGlobali.FunzioniGlobali.RicavaMappaAttiva();
                if (mappa is null)
                {
                    return;
                }

                CIMMap cIMMap = funzioniVariabiliGlobali.FunzioniGlobali.RicavaInfoMappaCIMMapClass(mappa).Result;

                CIMDatumTransform[] trasfDatum = cIMMap.DatumTransforms; // DatumTransform fornisce un array fornisce
                                                                         // una matrice unidimensionale di oggetti appartenenti alla classe CIMDatumTransform.

                string elencoProiezioniAlVolo = String.Empty;

                if (trasfDatum != null)
                {
                    for (int i = 0; i < trasfDatum.LongCount <CIMDatumTransform>(); i++)
                    {
                        CIMDatumTransform cIMDatumTransform = new CIMDatumTransform(); // Istanzio la CoClass
                        cIMDatumTransform = trasfDatum.ElementAt(i);                   // Ricavo quell'elemento alla tal posizione nella matrice
                                                                                       // Ricavo l'oggetto GeographicTransformation, che dovrebbe essere un Abtract Class.
                        GeographicTransformation geographicTransformation = cIMDatumTransform.GeoTransformation as GeographicTransformation;
                        elencoProiezioniAlVolo = geographicTransformation.Name + Environment.NewLine;
                    }

                    ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(elencoProiezioniAlVolo, String.Format("Elenco proiezioni al volo della mappa: '{0}'", mappa.Name), System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Information);
                }
                else
                {
                    ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(String.Format("Non ci sono proiezioni al volo attive per la mappa: '{0}'", mappa.Name), "Attenzione", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Exclamation);
                }
            });
        }