Exemplo n.º 1
0
        public static double GetMetresInMapUnits(double metres)
        {
            var focusMap         = (ArcMap.Application.Document as IMxDocument)?.FocusMap;
            var spatialReference = focusMap.SpatialReference;

            return(EsriTools.GetMetresInMapUnits(metres, spatialReference));
        }
        public string[] GetRasterInfo(string rasterName)
        {
            if (String.IsNullOrEmpty(rasterName))
            {
                return(null);
            }

            var mapLayerManager = new MapLayersManager(ArcMap.Document.ActiveView);
            var rasterInfo      = new string[5];
            IRasterFunctionHelper functionHelper = new RasterFunctionHelper();

            var rasterLayer = mapLayerManager.RasterLayers.First(layer => layer.Name.Equals(rasterName));

            var filePath = rasterLayer.FilePath;

            var rasterProps        = rasterLayer.Raster as IRasterProps;
            var defaultRasterProps = rasterLayer.Raster as IRasterDefaultProps;

            var pixelSize         = EsriTools.GetPixelSize(ArcMap.Document.ActiveView);
            var spatialResolution = pixelSize / rasterProps.MeanCellSize().X;

            var heightInPixels = rasterProps.Height;
            var widthInPixels  = rasterProps.Width;

            var heightInKilometres = rasterProps.Extent.Height / EsriTools.GetMetresInMapUnits(1000, ArcMap.Document.FocusMap.SpatialReference);
            var widthInKilometres  = rasterProps.Extent.Width / EsriTools.GetMetresInMapUnits(1000, ArcMap.Document.FocusMap.SpatialReference);

            var area = heightInKilometres * widthInKilometres;

            rasterInfo[0] =
                String.Format(LocalizationContext.Instance
                              .FindLocalizedElement("SolutionSettingsWindow_lbRasterInfoLocationText",
                                                    "розташування: {0}"), filePath);

            rasterInfo[1] =
                String.Format(LocalizationContext.Instance
                              .FindLocalizedElement("SolutionSettingsWindow_lbRasterInfoSpatialResolutionText",
                                                    "просторова роздільна здатність: {0}"), spatialResolution);

            rasterInfo[2] =
                String.Format(LocalizationContext.Instance
                              .FindLocalizedElement("SolutionSettingsWindow_lbRasterInfoAreaText",
                                                    "площа: {0}"), area);

            rasterInfo[3] =
                String.Format(LocalizationContext.Instance
                              .FindLocalizedElement("SolutionSettingsWindow_lbRasterInfoSizeInKilometresText",
                                                    "розмір (км): висота {0}  ширина {1}"), heightInKilometres, widthInKilometres);

            rasterInfo[4] =
                String.Format(LocalizationContext.Instance
                              .FindLocalizedElement("SolutionSettingsWindow_lbRasterInfoSizeInPixelsText",
                                                    "розмір (пікс.): висота {0}  ширина {1}"), heightInPixels, widthInPixels);

            return(rasterInfo);
        }