// get boundary of raster private Envelope GetExtent() { if (_envelope != null) return _envelope; if (_gdalDataset != null) { var geoTrans = new double[6]; _gdalDataset.GetGeoTransform(geoTrans); // no rotation...use default transform if (!_useRotation && !HaveSpot || (geoTrans[0] == 0 && geoTrans[3] == 0)) geoTrans = new[] { 999.5, 1, 0, 1000.5, 0, -1 }; var geoTransform = new GeoTransform(geoTrans); // image pixels var dblW = (double)_imageSize.Width; var dblH = (double)_imageSize.Height; var left = geoTransform.EnvelopeLeft(dblW, dblH); var right = geoTransform.EnvelopeRight(dblW, dblH); var top = geoTransform.EnvelopeTop(dblW, dblH); var bottom = geoTransform.EnvelopeBottom(dblW, dblH); return new Envelope(left, right, bottom, top); } return null; }
// get boundary of raster private BoundingBox GetExtent() { if (_gdalDataset != null) { double right = 0, left = 0, top = 0, bottom = 0; double dblW, dblH; double[] geoTrans = new double[6]; _gdalDataset.GetGeoTransform(geoTrans); // no rotation...use default transform if (!_useRotation && !_haveSpot || (geoTrans[0] == 0 && geoTrans[3] == 0)) geoTrans = new[] { 999.5, 1, 0, 1000.5, 0, -1 }; _geoTransform = new GeoTransform(geoTrans); // image pixels dblW = _imagesize.Width; dblH = _imagesize.Height; left = _geoTransform.EnvelopeLeft(dblW, dblH); right = _geoTransform.EnvelopeRight(dblW, dblH); top = _geoTransform.EnvelopeTop(dblW, dblH); bottom = _geoTransform.EnvelopeBottom(dblW, dblH); return new BoundingBox(left, bottom, right, top); } return null; }