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(); } }