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))); }
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); } }); }