public void BeginPaint(Framework.Carto.IDisplay display, Framework.system.ICancelTracker cancelTracker) { if (!cancelTracker.Continue) { return; } //if (_thread.IsAlive) // _thread.Join(); GetImage(); }
public IRasterLayerCursor ChildLayers(Framework.Carto.IDisplay display, string filterClause) { if (_dataset == null || _dataset.Extent == null || _dataset.Scales == null) { return(null); } // !!!! Only correct, if diplay unit is meter !!!! double displayResolution = display.mapScale / (display.dpi / 0.0254); Grid grid = new Grid(new Point(_dataset.Extent.minx, _dataset.Extent.maxx), _dataset.TileWidth, _dataset.TileHeight, display.dpi, _dataset.Origin); for (int i = 0, to = _dataset.Scales.Length; i < to; i++) { grid.AddLevel(i, _dataset.Scales[i] / (display.dpi / 0.0254)); } IEnvelope dispEnvelope = display.DisplayTransformation.TransformedBounds(display); //display.Envelope; if (display.GeometricTransformer != null) { dispEnvelope = (IEnvelope)((IGeometry)display.GeometricTransformer.InvTransform2D(dispEnvelope)).Envelope; } int level = grid.GetBestLevel(displayResolution, 90D); double res = grid.GetLevelResolution(level); int col0 = grid.TileColumn(dispEnvelope.minx, res); int row0 = grid.TileRow(dispEnvelope.maxy, res); int col1 = grid.TileColumn(dispEnvelope.maxx, res); int row1 = grid.TileRow(dispEnvelope.miny, res); int col_from = Math.Max(0, Math.Min(col0, col1)), col_to = Math.Min((int)Math.Round(_dataset.Extent.Width / (_dataset.TileWidth * res), 0) - 1, Math.Max(col0, col1)); int row_from = Math.Max(0, Math.Min(row0, row1)), row_to = Math.Min((int)Math.Round(_dataset.Extent.Height / (_dataset.TileHeight * res), 0) - 1, Math.Max(row0, row1)); LayerCursor cursor = new LayerCursor(); for (int r = row_from; r <= row_to; r++) { for (int c = col_from; c <= col_to; c++) { cursor.Layers.Add( new RasterTile(_dataset, grid, level, r, c, res)); } } cursor.Layers.Sort(new TileSorter(dispEnvelope.Center)); return(cursor); }
public Task <IRasterPaintContext> BeginPaint(Framework.Carto.IDisplay display, Framework.system.ICancelTracker cancelTracker) { return(Task.FromResult <IRasterPaintContext>(new RasterPaintContext(null))); }
public void BeginPaint(Framework.Carto.IDisplay display, Framework.system.ICancelTracker cancelTracker) { }