示例#1
0
        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));
            }
        }
示例#2
0
        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));
            }
        }
示例#3
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);
                }
            });
        }