示例#1
0
        private void RedrawVertexes(ScreenRectangle localScreenView)
        {
            try
            {
                _lockVr.EnterReadLock();
                if (_rVertexTree.NodeCount == 0)
                {
                    return;
                }

                var res = _rVertexTree.Query(localScreenView);

                foreach (var node in res)
                {
                    var row = (MapDb.VertexesRow)node.Row;

                    var coordinate = new GeomCoordinate(row.Longitude, row.Latitude);
                    var pt         = coordinate.GetScreenPoint(localScreenView);

                    DrawBitmap(Vertex, Point.Subtract(pt, HalfVertexSize));

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