Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        static void WriteTableMetadata(MBTilesReader mBTilesReader)
        {
            string metadata = mBTilesReader.GetMetadata();

            byteRangeMetadata.MetaData = Write(metadata);
        }