CustomGeoTiffRasterLayer geoTiff = new CustomGeoTiffRasterLayer(tiffFilePath); geoTiff.UpperThreshold = double.MaxValue; geoTiff.LowerThreshold = 0; geoTiff.Open(); bool hasProj = geoTiff.HasProjectionText; public class CustomGeoTiffRasterSource : GeoTiffRasterSource { public CustomGeoTiffRasterSource(string imagePathFilename) : this(imagePathFilename, string.Empty) { } public CustomGeoTiffRasterSource(string imagePathFilename, string worldfilePathFilename) : base(imagePathFilename, worldfilePathFilename) { } public CustomGeoTiffRasterSource(string imagePathFilename, RectangleShape imageExtent) : base(imagePathFilename, imageExtent) { } protected override bool HasProjectionTextCore { get { return true; } } protected override string GetProjectionTextCore() { string sFilePath = this.PathFilename; //var proj4String = new StringBuilder(2048); //GeoTiffHelper.GeoTiffWrapper.GetGeoTiffProj4String(sFilePath, proj4String, 2048); return base.GetProjectionTextCore(); } } public class CustomGeoTiffRasterLayer : RasterLayer { private DrawingQuality drawingQuality; public CustomGeoTiffRasterLayer() : this(string.Empty, string.Empty) { } public CustomGeoTiffRasterLayer(string imagePathFilename) : this(imagePathFilename, string.Empty) { } public CustomGeoTiffRasterLayer(string imagePathFilename, string worldfilePathFilename) : base() { ImageSource = new CustomGeoTiffRasterSource(imagePathFilename, worldfilePathFilename); ((GeoTiffRasterSource)ImageSource).PathFilename = imagePathFilename; } public CustomGeoTiffRasterLayer(string imagePathFilename, RectangleShape imageExtent) : base() { ImageSource = new CustomGeoTiffRasterSource(imagePathFilename, imageExtent); ((GeoTiffRasterSource)ImageSource).PathFilename = imagePathFilename; } public GeoTiffLibraryType LibraryType { get { return ((GeoTiffRasterSource)ImageSource).LibraryType; } set { ((GeoTiffRasterSource)ImageSource).LibraryType = value; } } public override bool HasBoundingBox { get { bool hasBoundingBox = false; try { if (!ImageSource.IsOpen) { ImageSource.Open(); } ImageSource.GetBoundingBox(); hasBoundingBox = true; } catch { hasBoundingBox = false; } return hasBoundingBox; } } public DrawingQuality DrawingQuality { get { return drawingQuality; } set { drawingQuality = value; } } public string PathFilename { get { return ((GeoTiffRasterSource)ImageSource).PathFilename; } set { ((GeoTiffRasterSource)ImageSource).PathFilename = value; } } protected override void DrawCore(GeoCanvas canvas, System.Collections.ObjectModel.Collection labelsInAllLayers) { canvas.DrawingQuality = this.DrawingQuality; base.DrawCore(canvas, labelsInAllLayers); } }