protected override void OnClick() { ArcGIS.Desktop.Mapping.Map mappa = ProAddInSR.funzioniVariabiliGlobali.FunzioniGlobali.RicavaMappaAttiva(); if (mappa is null) { return; } SpatialReference spatialReferenceMappaAttiva = mappa.SpatialReference; int EPSG = spatialReferenceMappaAttiva.LatestWkid; string strInfoAvanzate = String.Empty; string strTipologiaSR = String.Empty; if (spatialReferenceMappaAttiva.IsProjected) { strTipologiaSR = "Proiettato"; } else if (spatialReferenceMappaAttiva.IsGeographic) { strTipologiaSR = "Geografico"; } strInfoAvanzate = String.Format( "Il Dataframe attivo ha un Sistema di Riferimento avente le seguenti caratteristiche:\n\nNome: '{0}'.\nTipologia: {1}.\nCodice EPSG: {2}.\nUnita' lineare: {3}.\nNome e codice EPSG del DATUM: '{4}', {5}.\nNome e codice EPSG dell'ellissoide: '{6}', {7}.\nRisoluzione XY: {8}\nTolleranza XY: {9}\nRisoluzione Asse Z: {10}\nTolleranza Asse Z: {11}\nFattore di scala: {12}", spatialReferenceMappaAttiva.Name, strTipologiaSR, EPSG, spatialReferenceMappaAttiva.Unit, spatialReferenceMappaAttiva.Gcs.Datum.Name, spatialReferenceMappaAttiva.Gcs.Datum.SpheroidWkid, spatialReferenceMappaAttiva.Gcs.Datum.SpheroidName, spatialReferenceMappaAttiva.Gcs.Datum.SpheroidWkid, spatialReferenceMappaAttiva.XYResolution, spatialReferenceMappaAttiva.XYTolerance, spatialReferenceMappaAttiva.ZUnit, spatialReferenceMappaAttiva.ZTolerance, spatialReferenceMappaAttiva.XYScale); strInfoAvanzate = strInfoAvanzate + "\n\nPremere 'Yes' per ricercare il SR su 'www.epsg.io', altrimenti premere 'No'."; var obj = ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(strInfoAvanzate, "Info Avanzate sul SR dell'active Map", System.Windows.MessageBoxButton.YesNoCancel, System.Windows.MessageBoxImage.Information); if (obj.ToString().ToUpper() == "YES") { System.Diagnostics.Process.Start(String.Format("https://epsg.io/{0}", EPSG)); } }
protected override void OnClick() { ArcGIS.Desktop.Mapping.Map mappa = ProAddInSR.funzioniVariabiliGlobali.FunzioniGlobali.RicavaMappaAttiva(); if (mappa is null) { return; } SpatialReference spatialReferenceMappaAttiva = mappa.SpatialReference; int EPSG = spatialReferenceMappaAttiva.LatestWkid; string strInfoBasiche = String.Empty; string strTipologiaSR = String.Empty; if (spatialReferenceMappaAttiva.IsProjected) { strTipologiaSR = "Proiettato"; } else if (spatialReferenceMappaAttiva.IsGeographic) { strTipologiaSR = "Geografico"; } strInfoBasiche = String.Format( "La mappa attiva ha un Sistema di Riferimento avente le seguenti caratteristiche:\n\nNome: '{0}'.\nTipologia: {1}.\nUnita' di misura: {2}.", spatialReferenceMappaAttiva.Name, strTipologiaSR, spatialReferenceMappaAttiva.Unit); //strInfoBasiche = strInfoBasiche + // String.Format("\n\nTipologia di Proiezione Cartografica e relativo codice EPSG: '{0}', {1}", spatialReferenceMappaAttiva. .projectionName, spatialReferenceMappaAttiva.LatestWkid) + "\n\nPremere 'Retry / Riprova' per ricercare il SR su 'www.epsg.io', altrimenti premere 'Cancel / Annulla'."; strInfoBasiche = strInfoBasiche + "\n\nPremere 'Yes' per ricercare il SR su 'www.epsg.io', altrimenti premere 'No'."; var obj = ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(strInfoBasiche, "Info Basiche sul SR dell'active Map", System.Windows.MessageBoxButton.YesNoCancel, System.Windows.MessageBoxImage.Information); if (obj.ToString().ToUpper() == "YES") { System.Diagnostics.Process.Start(String.Format("https://epsg.io/{0}", EPSG)); } }
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); } }); }