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