Beispiel #1
0
 public void Update(CoordEnvelope coordEnvelope)
 {
     _isNeedUpdateHeader = false;
     if (coordEnvelope != null)
     {
         _coordEnvelope = coordEnvelope.Clone();
         _header.MinX   = (float)_coordEnvelope.MinX;
         _header.MaxX   = (float)_coordEnvelope.MaxX;
         _header.MinY   = (float)_coordEnvelope.MinY;
         _header.MaxY   = (float)_coordEnvelope.MaxY;
         if (_access == MemoryMappedFileAccess.ReadWrite)
         {
             //MemoryRasterHeader header = GetExtHeader<MemoryRasterHeader>();
             SetExtHeader <MemoryRasterHeader>(_header);
             string hdr = HdrFile.GetHdrFileName(_fileName);
             if (File.Exists(hdr))
             {
                 File.Delete(hdr);
             }
         }
         else
         {
             _isNeedUpdateHeader = true;
         }
     }
 }
Beispiel #2
0
        public void Render(object sender, IDrawArgs drawArgs)
        {
            if (_bitmap == null || _coordEnvelope == null)
            {
                return;
            }
            CoordEnvelope evp = _coordEnvelope.Clone();

            if (_isGeoCoord)
            {
                (sender as ICanvas).CoordTransform.Geo2Prj(evp);
            }
            double x1 = evp.MinX;
            double y1 = evp.MinY;
            double x2 = evp.MaxX;
            double y2 = evp.MaxY;

            drawArgs.QuickTransformArgs.Transform(ref x1, ref y1);
            drawArgs.QuickTransformArgs.Transform(ref x2, ref y2);
            Graphics g = drawArgs.Graphics as Graphics;

            //g.DrawImage(_bitmap,
            //    RectangleF.FromLTRB((float)Math.Min(x1, x2), (float)Math.Min(y1, y2), (float)Math.Max(x1, x2), (float)Math.Max(y1, y2)));
            g.DrawImage(_bitmap, new PointF[] { new PointF((float)x1, (float)y2), new PointF((float)x2, (float)y2), new PointF((float)x1, (float)y1) },
                        new RectangleF(0, 0, _bitmap.Width, _bitmap.Height), GraphicsUnit.Pixel, _ia);
        }