csShared.Geo.Esri.MBTileCache.GetImage C# (CSharp) Méthode

GetImage() public méthode

public GetImage ( int level, int row, int col ) : byte[]
level int
row int
col int
Résultat byte[]
        public byte[] GetImage(int level, int row, int col)
        {
            var gRow = (int)((Math.Pow(2, level) - 1) - row);
            var key  = string.Format("{0}-{1}-{2}", gRow, col, level);
            //var pos = gRow + "-" + col + "-" + level;
            if (memoryCache.ContainsKey(key)) return memoryCache[key];

            using (var command = new SQLiteCommand(connection))
            {
                command.CommandText = string.Format(CultureInfo.InvariantCulture, @"SELECT [tile_data] FROM [tiles] WHERE zoom_level = {0} AND tile_column = {1} AND tile_row = {2};", level, col, gRow);
                    //"SELECT [tile_data] FROM [tiles] WHERE zoom_level = " + level + " AND tile_column = " + col +
                    //" AND tile_row = " + gRow;

                //"SELECT [tile_data] FROM [tiles] WHERE zoom_level = @zoom AND tile_column = @col AND tile_row = @row";
                //command.Parameters.Add(new SQLiteParameter("zoom", level));
                //command.Parameters.Add(new SQLiteParameter("col", col));
                //command.Parameters.Add(new SQLiteParameter("row", gRow));
                //Console.WriteLine(level + " , " + col + " , " + gRow);
                var tileObj = command.ExecuteScalar();
                if (tileObj == null)
                {
                    return null;
                }
                memoryCache[key] = (byte[])tileObj;
                if (memoryCache.Count > 3000) memoryCache.Remove(memoryCache.Keys.First());
                return (byte[])tileObj;
                //BitmapImage image = new BitmapImage();
                //image.BeginInit();
                //image.CacheOption = BitmapCacheOption.OnLoad;
                //image.UriSource = null;
                //image.StreamSource = new MemoryStream((byte[])tileObj);
                //image.EndInit();
                //return image;
            }
        }