コード例 #1
0
 private void TryResetConflictor()
 {
     if (_isCheckConflicting)
     {
         _conflictor.Reset();
     }
 }
コード例 #2
0
        private void ReRender(RenderArgs arg, bool needComputeViewport)
        {
            if (_dummyBitmap != null)
            {
                _dummyBitmap.Dispose();
            }
            _dummyBitmap = new Bitmap(_environment.CanvasSize.Width, _environment.CanvasSize.Height);
            if (needComputeViewport) //for web
            {
                ComputeViewportProjection();
            }
            _dummyEnvelope = ExtentOfProjectionCoord.Clone() as Envelope;
            //
            ILayerContainer layerContainer = _map.LayerContainer;

            //计算用于快速坐标变换的参数
            ComputeQuickArgs();
            //构造缓存画布
            using (Graphics g = Graphics.FromImage(_dummyBitmap))
            {
                g.SmoothingMode = _map.MapArguments.SmoothingMode;
                g.Clear(_map.MapArguments.BackColor);
                //重置冲突检测
                if (_conflictorForSymbol != null && _conflictorForSymbol.Enabled)
                {
                    _conflictorForSymbol.Reset();
                }
                //
                if (_conflictorForLabel != null && _conflictorForLabel.Enabled)
                {
                    _conflictorForLabel.Reset();
                    _labelRender.Begin(_conflictorForLabel, this as IFeatureRenderEnvironment);
                }
                else
                {
                    _labelRender.Begin(null, this as IFeatureRenderEnvironment);
                }
                //绘制影像层
                DrawRasterlayers(g);

                //绘制几何形状
                DrawAllGeometries(layerContainer, g);
                //绘制标注
                DrawAllLabels(layerContainer, g);
                #region debug
                //(_conflictorForLabel as PixelConflictor).Save();
                #endregion
            }
            arg.Graphics.DrawImage(_dummyBitmap, 0, 0);
        }