Beispiel #1
0
        private void RedrawCables(ScreenRectangle localScreenView)
        {
            try
            {
                _lockCr.EnterReadLock();

                if (_rCableTree.NodeCount == 0)
                {
                    return;
                }

                var res = _rCableTree.Query(localScreenView);
                foreach (var node in res)
                {
                    var row = (MapDb.CablesRow)node.Row;

                    var cabRect = new CoordinateRectangle(row.Longitude1, row.Latitude1, row.Longitude2, row.Latitude2);
                    var rect    = cabRect.GetScreenRect(localScreenView);

                    DrawLine(rect, 2, Color.Blue);

                    if (Level >= 14)
                    {
                        var caption = row.Caption;
                        if (!String.IsNullOrEmpty(caption))
                        {
                            var coordinate = cabRect.LineMiddlePoint;
                            var point      = coordinate.GetScreenPoint(localScreenView);
                            DrawString(caption, HalfVertexSize.Height, Point.Add(point, HalfVertexSize));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //do nothing
                System.Diagnostics.Trace.WriteLine(ex.Message);
            }
            finally
            {
                _lockCr.ExitReadLock();
            }
        }