private void GenerateTile(BackgroundWorker worker, int zoomLevel, int tileX, int tileY)
        {
            string quadKey = BingMapsTileSystem.TileXYToQuadKey(tileX, tileY, zoomLevel);

            if (this.IsParentTileEmpty(quadKey))
            {
                Interlocked.Increment(ref _numTilesSkipped);
            }
            else
            {
                BingTileQuery query = this.CreateQuery(quadKey, _tableName, enDiskCacheMode.ReadWrite);
                Bitmap        bmp   = _svc.GetImage(query);

                bool isEmpty = bmp.Tag != null;

                if (isEmpty)
                {
                    _emptyQuadKeys.Add(quadKey);
                    Interlocked.Increment(ref _numTilesEmpty);
                }
                else
                {
                    //_rasterFS.SaveTileBitmap(bmp, ImageFormat.Png, zoomLevel, tileX, tileY);
                    //bmp.Dispose();

                    Interlocked.Increment(ref _numTiles);
                }
            }
        }
        public string GetTileFilePath(int zoomLevel, int tileX, int tileY)
        {
            string quadKey = BingMapsTileSystem.TileXYToQuadKey(tileX, tileY, zoomLevel);

            return(Path.Combine(_outputDir, _tableName + "-" + zoomLevel.ToString(), tileX.ToString(), tileY.ToString() + ".png"));
        }