static void WriteTableTiles(MBTilesReader mBTilesReader, bool decompress) { var tiles = mBTilesReader.GetTiles(); Position = 0; int counter = 0; string percentageDone = string.Empty; Dictionary <string, string> dictionaryMap = new(); int total = tiles.Count; object sync = new(); Parallel.ForEach(tiles, tilesRow => { byte[] bytes = tilesRow.Tile_data; if (decompress) { bytes = Decompress(bytes); } lock (sync) { ByteRange byteRange = Write(bytes); string tileKey = tilesRow.TileKey().ToString(); dictionaryMap.Add(tileKey, byteRange.ToString()); counter++; double percentage = counter * 100 / total; string percentageDoneAux = percentage.ToString("#.#"); if (!percentageDone.Equals(percentageDoneAux)) { percentageDone = percentageDoneAux; Console.WriteLine("Completed " + percentageDone + "%"); } } }); string dictionary = JsonSerializer.Serialize(dictionaryMap); byteRangeMetadata.TilesDictionary = Write(dictionary); }
static void WriteTableMetadata(MBTilesReader mBTilesReader) { string metadata = mBTilesReader.GetMetadata(); byteRangeMetadata.MetaData = Write(metadata); }