private void PopulateRasterFileDictionary(RasterFileDictionary dictionary, FileMetadata mainTile, IRasterService rasterService, IEnumerable <FileMetadata> fileMetadataList) { // Add main tile if (!dictionary.ContainsKey(mainTile)) { dictionary[mainTile] = rasterService.OpenFile(mainTile.Filename, mainTile.fileFormat); } foreach (var fileMetadata in fileMetadataList) { if (!dictionary.ContainsKey(fileMetadata)) { dictionary[fileMetadata] = rasterService.OpenFile(fileMetadata.Filename, fileMetadata.fileFormat); } } }
private float GetElevationAtPoint(FileMetadata mainTile, RasterFileDictionary tiles, int x, int y, float nullValue) { FileMetadata goodTile = FindTile(mainTile, tiles, x, y, out int xRemap, out int yRemap); if (goodTile == null) { return(nullValue); } if (tiles.ContainsKey(goodTile)) { return(tiles[goodTile].GetElevationAtPoint(goodTile, xRemap, yRemap)); } else { throw new Exception("Tile not found. Should not happen."); } }