public override void OnDraw(GraphicsDisplay disp) { if (!m_bStart) { return; } bool bDrawWFP = false; if (bDrawWFP) { //用WPF绘制 Rect rect = disp.DT.FromMapWPF(Result); disp.DrawingContext.DrawRectangle(null, new System.Windows.Media.Pen(System.Windows.Media.Brushes.Blue, 1), rect); } else { //如果用内核绘制 SimpleFillSymbol f = new SimpleFillSymbol(System.Drawing.Color.Transparent, System.Drawing.Color.Blue, 1); Canvas c = disp.Canvas; f.StartDrawing(disp); f.Draw(new Envelope(Result)); f.EndDrawing(); disp.IncrementCanvasAction(); } }
protected override bool BeforeDraw(GraphicsDisplay disp, RawPoint[] geoline, System.Windows.Point[] line) { Path p = new Path(geoline); Geometry geo = p.GeodesicBuffer(100000, GeoStar.Core.BufferCapType.eBufferFlatCap, 0.001); m_Sym.StartDrawing(disp); m_Sym.Draw(geo); m_Sym.EndDrawing(); disp.IncrementCanvasAction(); return(false); }