Esempio n. 1
0
        public void MergeData(MapDb.VertexesDataTable vertexes)
        {
            try
            {
                _lockVr.EnterWriteLock();

                _rVertexTree.MergeData(vertexes);
            }
            finally
            {
                _lockVr.ExitWriteLock();
            }
            Update(new Rectangle(0, 0, Width, Height));
        }
Esempio n. 2
0
        private void GenerateSampleData()
        {
            _netLayer.ClearData();

            //--sample for show smothness
            var rnd    = new Random();
            var rangeX = Convert.ToInt32((Settings.Default.RightMapBound - Settings.Default.LeftMapBound) * 100000);
            var rangeY = Convert.ToInt32((Settings.Default.TopMapBound - Settings.Default.BottomMapBound) * 100000);

            var longitude1 = Convert.ToDecimal(Settings.Default.LeftMapBound + (double)rnd.Next(0, rangeX) / 100000);
            var latitude1  = Convert.ToDecimal(Settings.Default.BottomMapBound + (double)rnd.Next(0, rangeY) / 100000);

            var cableDbRows  = new MapDb.CablesDataTable();
            var vertexDbRows = new MapDb.VertexesDataTable();

            while (cableDbRows.Count < 200)
            {
                var cableRow = cableDbRows.NewCablesRow();

                cableRow.Longitude1 = longitude1;
                cableRow.Latitude1  = latitude1;
                cableRow.Longitude2 = Convert.ToDecimal(Settings.Default.LeftMapBound + (double)rnd.Next(0, rangeX) / 100000);
                cableRow.Latitude2  = Convert.ToDecimal(Settings.Default.BottomMapBound + (double)rnd.Next(0, rangeY) / 100000);
                var rect = new CoordinateRectangle(cableRow.Longitude1, cableRow.Latitude1, cableRow.Longitude2, cableRow.Latitude2);
                cableRow.Length = Convert.ToDecimal(rect.LineLength);
                if (cableRow.Length <= 5000 && cableRow.Length > 200)
                {
                    longitude1       = cableRow.Longitude2;
                    latitude1        = cableRow.Latitude2;
                    cableRow.Caption = rect.ToString();
                    cableDbRows.AddCablesRow(cableRow);

                    var vertexRow = vertexDbRows.NewVertexesRow();

                    vertexRow.Longitude = longitude1;
                    vertexRow.Latitude  = latitude1;

                    var pt = new GeomCoordinate(vertexRow.Longitude, vertexRow.Latitude);
                    vertexRow.Caption = pt.ToString();
                    vertexDbRows.AddVertexesRow(vertexRow);
                }
            }
            _netLayer.MergeData(vertexDbRows);
            _netLayer.MergeData(cableDbRows);
            //--end sample
        }
Esempio n. 3
0
        public void MergeData(MapDb.VertexesDataTable vertexes)
        {
            if (VertexDbRows == null)
            {
                return;
            }

            VertexDbRows.Merge(vertexes, false, MissingSchemaAction.Error);

            Parallel.ForEach(vertexes, row =>
            {
                var newRow = VertexDbRows.FindByID(row.ID);
                Insert(newRow);
            });

            //apply changes to db here
        }
Esempio n. 4
0
 public VertexTree()
     : base(SpatialSheetPowerTypes.Ultra, SpatialSheetPowerTypes.Extra, SpatialSheetPowerTypes.Medium, SpatialSheetPowerTypes.Low)
 {
     VertexDbRows = new MapDb.VertexesDataTable();
 }