static void SpatialTrace_GeometryWithDEMGrid(ElevationService elevationService, IGeoTiffService geoTiffService, string wktBbox, DEMDataSet dataSet) { SpatialTrace.Enable(); DEM.Net.Lib.BoundingBox bbox = null; if (wktBbox != null) { SqlGeometry geom = GeometryService.ParseWKTAsGeometry(wktBbox); SpatialTrace.TraceGeometry(geom, "Bbox"); bbox = geom.ToGeography().STBuffer(60).GetBoundingBox(); //SpatialTrace.Indent("Line Segments"); //int i = 0; //foreach (var seg in geom.Segments()) //{ // i++; // Color color = (i % 2 == 0) ? Colors.Blue : Colors.Red; // SpatialTrace.SetLineColor(color); // SpatialTrace.TraceGeometry(seg, "Seg" + i, "Seg" + i); //} SpatialTrace.Unindent(); } Dictionary <string, DemFileReport> tiles = geoTiffService.GenerateReport(dataSet, bbox); SpatialTrace.Indent("DEM tiles"); SpatialTrace.SetLineColor(Colors.Black); foreach (var tile in tiles) { SpatialTrace.SetFillColor(tile.Value.IsExistingLocally ? Color.FromArgb(128, 0, 255, 0) : Color.FromArgb(128, 255, 0, 0)); SqlGeometry tileBbox = tile.Value.Source.BBox.AsGeomety(); SpatialTrace.TraceGeometry(tileBbox, $"{tile.ToString()}"); } SpatialTrace.Unindent(); // View spatial trace in bin\debug with spatial trace viewer SpatialTrace.ShowDialog(); SpatialTrace.Disable(); }
public void DownloadMissingFiles(DEMDataSet dataSet, BoundingBox bbox = null) { var report = _IGeoTiffService.GenerateReport(dataSet, bbox); // Generate metadata files if missing foreach (var file in report.Where(kvp => kvp.Value.IsMetadataGenerated == false && kvp.Value.IsExistingLocally == true).Select(kvp => kvp.Value)) { _IGeoTiffService.GenerateFileMetadata(file.LocalName, false, false); } List <DemFileReport> v_filesToDownload = new List <DemFileReport>(report.Where(kvp => kvp.Value.IsExistingLocally == false).Select(kvp => kvp.Value)); if (v_filesToDownload.Count == 0) { Trace.TraceInformation("No missing file(s)."); } else { Trace.TraceInformation($"Downloading {v_filesToDownload.Count} missing file(s)."); List <Task> tasks = new List <Task>(); foreach (var file in v_filesToDownload) { tasks.Add(DownloadDEMTile(file.URL, file.LocalName)); } try { Task.WaitAll(tasks.ToArray()); _IGeoTiffService.GenerateDirectoryMetadata(dataSet, false, false); _IGeoTiffService.LoadManifestMetadata(dataSet, true); } catch (AggregateException ex) { Trace.TraceError($"Error downloading missing files. Check internet connection or retry later. {ex.GetInnerMostException().Message}"); } } }