From 59e7594e461c011d582bb6fb3ea6b150e8be6d54 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 19 八月 2023 14:48:23 +0800
Subject: [PATCH] 1

---
 DataLoader/MainWindow.xaml.cs |    3 
 DataLoader/CS/GdalHelper.cs   |  469 ----------------------------------------------------------
 2 files changed, 1 insertions(+), 471 deletions(-)

diff --git a/DataLoader/CS/GdalHelper.cs b/DataLoader/CS/GdalHelper.cs
index 865acdf..a36a1c0 100644
--- a/DataLoader/CS/GdalHelper.cs
+++ b/DataLoader/CS/GdalHelper.cs
@@ -137,474 +137,5 @@
 
             return new double[] { x, y };
         }
-
-        #region GDAL鍒囧浘
-        private Geometry GetMinPoint(Dataset ds)
-        {
-            double[] transform = new double[6];
-            ds.GetGeoTransform(transform);
-
-            string epsg = ds.GetSpatialRef().GetAuthorityCode(null);
-            double xMin = transform[0];
-            double yMin = transform[3];
-
-            Geometry point = new Geometry(wkbGeometryType.wkbPoint);
-            point.AddPoint(xMin, yMin, 0);
-            if ("4326" == epsg)
-            {
-                point.AssignSpatialReference(sr4326);
-                return point;
-            }
-
-            point.AssignSpatialReference(ds.GetSpatialRef());
-            point.TransformTo(sr4326);
-            return point;
-        }
-
-        private Geometry GetMaxPoint(Dataset ds)
-        {
-            double[] transform = new double[6];
-            ds.GetGeoTransform(transform);
-
-            string epsg = ds.GetSpatialRef().GetAuthorityCode(null);
-            double xMax = transform[0] + (ds.RasterXSize * transform[1]);
-            double yMax = transform[3] + (ds.RasterYSize * transform[1]);
-
-            Geometry point = new Geometry(wkbGeometryType.wkbPoint);
-            point.AddPoint(xMax, yMax, 0);
-            if ("4326" == epsg)
-            {
-                point.AssignSpatialReference(sr4326);
-                return point;
-            }
-
-            point.AssignSpatialReference(ds.GetSpatialRef());
-            point.TransformTo(sr4326);
-            return point;
-        }
-
-        public void GenerateTiles()
-        {
-            string outPath = "D:\\xyz\\ce\\xyz2";
-            string file = "D:\\xyz\\ce\\5_A1.tif";
-            if (!File.Exists(file)) return;
-
-            Stopwatch sw = new Stopwatch();
-            sw.Start(); // 绋嬪簭寮�濮嬫椂闂�
-            Dataset ds = null;
-            try
-            {
-                ds = Gdal.Open(file, Access.GA_Update);
-                if (null == ds) return;
-
-                double[] transform = new double[6];
-                ds.GetGeoTransform(transform);
-                int rasterCount = ds.RasterCount;
-                Console.WriteLine(string.Format("Origin = ({0}, {1})", transform[0], transform[3]));
-                Console.WriteLine(string.Format("Pixel Size = ({0}, {1})", transform[1], transform[5]));
-
-                // 4.1 棣栧厛鑾峰彇鍘熷褰卞儚鐨勫湴鐞嗗潗鏍囪寖鍥�
-                Geometry minPoint = GetMinPoint(ds);
-                Geometry maxPoint = GetMaxPoint(ds);
-                double xmin = minPoint.GetX(0);
-                double ymin = minPoint.GetY(0);
-                double xmax = maxPoint.GetX(0);
-                double ymax = maxPoint.GetY(0);
-                Geometry imageBound = CreatePolygon(xmin, xmax, ymin, ymax, sr4326);
-
-                // 4.2 鑾峰彇鍘熷褰卞儚鐨勫儚绱犲垎杈ㄧ巼
-                // 鍘熷鍥惧儚涓滆タ鏂瑰悜鍍忕礌鍒嗚鲸鐜�
-                double src_w_e_pixel_resolution = (xmax - xmin) / ds.RasterXSize;
-                // 鍘熷鍥惧儚鍗楀寳鏂瑰悜鍍忕礌鍒嗚鲸鐜�
-                double src_n_s_pixel_resolution = (ymax - ymin) / ds.RasterYSize;
-
-                // 鑾峰彇Band
-                Band in_band1 = ds.GetRasterBand(1);
-                Band in_band2 = ds.GetRasterBand(2);
-                Band in_band3 = ds.GetRasterBand(3);
-                //in_band1.Fill(0, 255); // GdalConst.GMF_NODATA
-                in_band1.SetNoDataValue(0); // -9999
-                in_band2.SetNoDataValue(0);
-                in_band3.SetNoDataValue(0);
-
-                int BufferSize = 256 * 256 * 5; // GdalConst.GDT_Int32
-                for (int zoom = 10; zoom <= 18; zoom++)
-                {
-                    // 4.3 鏍规嵁鍘熷褰卞儚鍦扮悊鑼冨洿姹傝В鍒囩墖琛屽垪鍙�  // 缁忕含搴﹁浆鐡︾墖缂栧彿
-                    int tileRowMax = Lat2tile(ymin, zoom); // 绾害  -90 ->  90 lat
-                    int tileRowMin = Lat2tile(ymax, zoom);
-                    int tileColMin = Lon2tile(xmin, zoom); // 缁忓害 -180 -> 180 lon
-                    int tileColMax = Lon2tile(xmax, zoom);
-
-                    Parallel.For(tileColMin, tileColMax + 1, (col) =>
-                    {
-                        Parallel.For(tileRowMin, tileRowMax + 1, (row) =>
-                        {
-                            // 4.4 姹傚師濮嬪奖鍍忓湴鐞嗚寖鍥翠笌鎸囧畾缂╂斁绾у埆鎸囧畾琛屽垪鍙风殑鍒囩墖浜ら泦
-                            double tempLatMin = Tile2lat(row + 1, zoom);
-                            double tempLatMax = Tile2lat(row, zoom);
-                            double tempLonMin = Tile2lon(col, zoom);
-                            double tempLonMax = Tile2lon(col + 1, zoom);
-
-                            Console.WriteLine(string.Format("{0}\\{1}\\{2}.png", zoom, col, row));
-                            Geometry tileBound = CreatePolygon(tempLonMin, tempLonMax, tempLatMin, tempLatMax, sr4326);
-                            Geometry intersect = tileBound.Intersection(imageBound);
-                            if (null == intersect)
-                            {
-                                Console.WriteLine(string.Format("{0}\\{1}\\{2}.png锛屼笉瀛樺湪", zoom, col, row));
-                                return;
-                            }
-                            Envelope env = new Envelope();
-                            intersect.GetEnvelope(env);
-
-                            // 4.5 姹傝В褰撳墠鍒囩墖鐨勫儚绱犲垎杈ㄧ巼(榛樿鍒囩墖澶у皬涓�256*256)
-                            // 鍒囩墖涓滆タ鏂瑰悜鍍忕礌鍒嗚鲸鐜�
-                            double dst_w_e_pixel_resolution = (tempLonMax - tempLonMin) / 256;
-                            // 鍒囩墖鍗楀寳鏂瑰悜鍍忕礌鍒嗚鲸鐜�
-                            double dst_n_s_pixel_resolution = (tempLatMax - tempLatMin) / 256;
-
-                            // 4.6 璁$畻浜ら泦鐨勫儚绱犱俊鎭�
-                            // 姹傚垏鍥捐寖鍥村拰鍘熷鍥惧儚浜ら泦鐨勮捣濮嬬偣鍍忕礌鍧愭爣
-                            int offset_x = (int)((env.MinX - xmin) / src_w_e_pixel_resolution);
-                            int offset_y = (int)Math.Abs((env.MaxY - ymax) / src_n_s_pixel_resolution);
-
-                            // 姹傚湪鍒囧浘鍦扮悊鑼冨洿鍐呯殑鍘熷鍥惧儚鐨勫儚绱犲ぇ灏�
-                            int block_xsize = (int)((env.MaxX - env.MinX) / src_w_e_pixel_resolution);
-                            int block_ysize = (int)((env.MaxY - env.MinY) / src_n_s_pixel_resolution);
-
-                            // 姹傚師濮嬪浘鍍忓湪鍒囩墖鍐呯殑鍍忕礌澶у皬
-                            int image_Xbuf = (int)Math.Ceiling((env.MaxX - env.MinX) / dst_w_e_pixel_resolution);
-                            int image_Ybuf = (int)Math.Ceiling(Math.Abs((env.MaxY - env.MinY) / dst_n_s_pixel_resolution));
-
-                            // 姹傚師濮嬪浘鍍忓湪鍒囩墖涓殑鍋忕Щ鍧愭爣
-                            int imageOffsetX = (int)((env.MinX - tempLonMin) / dst_w_e_pixel_resolution);
-                            int imageOffsetY = (int)Math.Abs((env.MaxY - tempLatMax) / dst_n_s_pixel_resolution);
-                            imageOffsetX = imageOffsetX > 0 ? imageOffsetX : 0;
-                            imageOffsetY = imageOffsetY > 0 ? imageOffsetY : 0;
-
-                            // 4.7 浣跨敤GDAL鐨凴eadRaster鏂规硶瀵瑰奖鍍忔寚瀹氳寖鍥磋繘琛岃鍙栦笌鍘嬬缉銆�
-                            // 鎺ㄨ崘鍦ㄥ垏鐗囧墠寤虹珛鍘熷褰卞儚鐨勯噾瀛楀鏂囦欢锛孯eadRaster鍦ㄥ唴閮ㄥ疄鐜颁腑鍙洿鎺ヨ鍙栫浉搴旂骇鍒殑閲戝瓧濉旀枃浠讹紝鎻愰珮鏁堢巼銆�
-                            int[] band1BuffData = new int[BufferSize]; // 256 * 256 * GdalConst.GDT_Int32
-                            int[] band2BuffData = new int[BufferSize];
-                            int[] band3BuffData = new int[BufferSize];
-
-                            try
-                            {
-                                in_band1.ReadRaster(offset_x, offset_y, block_xsize, block_ysize, band1BuffData, image_Xbuf, image_Ybuf, 0, 0);
-                                in_band2.ReadRaster(offset_x, offset_y, block_xsize, block_ysize, band2BuffData, image_Xbuf, image_Ybuf, 0, 0);
-                                in_band3.ReadRaster(offset_x, offset_y, block_xsize, block_ysize, band3BuffData, image_Xbuf, image_Ybuf, 0, 0);
-
-                                // 4.8 灏嗗垏鐗囨暟鎹啓鍏ユ枃浠�
-                                // 浣跨敤gdal鐨凪EM椹卞姩鍦ㄥ唴瀛樹腑鍒涘缓涓�鍧楀尯鍩熷瓨鍌ㄥ浘鍍忔暟缁�
-                                OSGeo.GDAL.Driver memDriver = Gdal.GetDriverByName("MEM");
-                                Dataset msmDS = memDriver.Create("msmDS", 256, 256, 4, DataType.GDT_Int32, null);
-                                Band dstBand1 = msmDS.GetRasterBand(1);
-                                Band dstBand2 = msmDS.GetRasterBand(2);
-                                Band dstBand3 = msmDS.GetRasterBand(3);
-
-                                // 璁剧疆alpha娉㈡鏁版嵁,瀹炵幇鑳屾櫙閫忔槑
-                                Band alphaBand = msmDS.GetRasterBand(4);
-                                int[] alphaData = new int[BufferSize];
-                                for (int index = 0; index < alphaData.Length; index++)
-                                {
-                                    if (band1BuffData[index] > 0) alphaData[index] = 255;
-                                }
-
-                                // 鍐欏悇涓尝娈垫暟鎹�
-                                dstBand1.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, band1BuffData, image_Xbuf, image_Ybuf, 0, 0);
-                                dstBand2.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, band2BuffData, image_Xbuf, image_Ybuf, 0, 0);
-                                dstBand3.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, band3BuffData, image_Xbuf, image_Ybuf, 0, 0);
-                                alphaBand.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, alphaData, image_Xbuf, image_Ybuf, 0, 0);
-
-                                string path = Path.Combine(outPath, zoom.ToString(), col.ToString());
-                                if (!Directory.Exists(path)) Directory.CreateDirectory(path);
-
-                                // 浣跨敤PNG椹卞姩灏嗗唴瀛樹腑鐨勫浘鍍忔暟缁勫啓鍏ユ枃浠�
-                                string pngPath = path + "\\" + row + ".png";
-                                OSGeo.GDAL.Driver pngDriver = Gdal.GetDriverByName("PNG");
-                                Dataset pngDs = pngDriver.CreateCopy(pngPath, msmDS, 0, null, null, null);
-
-                                msmDS.FlushCache();
-                                pngDs.Dispose(); // 閲婃斁鍐呭瓨
-                            }
-                            catch (Exception ex)
-                            {
-                                Console.WriteLine(ex.Message);
-                            }
-                        });
-                    });
-                }
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            finally
-            {
-                if (null != ds) ds.Dispose();
-                sw.Stop(); // 绋嬪簭缁撴潫
-                Console.WriteLine("鑰楁椂" + Math.Round(sw.ElapsedMilliseconds / 1000.0, 2) + "s"); // 绉�
-            }
-        }
-
-        public void GenerateTiles2()
-        {
-            string outPath = "D:\\xyz\\ce\\xyz";
-            string file = "D:\\xyz\\ce\\5_A1.tif";
-            //string file = "d:\\xyz\\dem\\dem\\33b.tif"; //string file = "D:\\xyz\\dq\\dq.vrt";
-            if (!File.Exists(file)) return;
-
-            Stopwatch sw = new Stopwatch();
-            sw.Start(); // 绋嬪簭寮�濮嬫椂闂�
-            Dataset ds = null;
-            try
-            {
-                ds = Gdal.Open(file, Access.GA_Update);
-                if (null == ds) return;
-
-                double[] transform = new double[6];
-                ds.GetGeoTransform(transform);
-                int rasterCount = ds.RasterCount;
-                Console.WriteLine(string.Format("Origin = ({0}, {1})", transform[0], transform[3]));
-                Console.WriteLine(string.Format("Pixel Size = ({0}, {1})", transform[1], transform[5]));
-
-                // 4.1 棣栧厛鑾峰彇鍘熷褰卞儚鐨勫湴鐞嗗潗鏍囪寖鍥�
-                Geometry minPoint = GetMinPoint(ds);
-                Geometry maxPoint = GetMaxPoint(ds);
-                double xmin = minPoint.GetX(0);
-                double ymin = minPoint.GetY(0);
-                double xmax = maxPoint.GetX(0);
-                double ymax = maxPoint.GetY(0);
-                Geometry imageBound = CreatePolygon(xmin, xmax, ymin, ymax, sr4326);
-
-                // 4.2 鑾峰彇鍘熷褰卞儚鐨勫儚绱犲垎杈ㄧ巼
-                // 鍘熷鍥惧儚涓滆タ鏂瑰悜鍍忕礌鍒嗚鲸鐜�
-                double src_w_e_pixel_resolution = (xmax - xmin) / ds.RasterXSize;
-                // 鍘熷鍥惧儚鍗楀寳鏂瑰悜鍍忕礌鍒嗚鲸鐜�
-                double src_n_s_pixel_resolution = (ymax - ymin) / ds.RasterYSize;
-
-                // 鑾峰彇Band
-                Band in_band1 = ds.GetRasterBand(1);
-                Band in_band2 = ds.GetRasterBand(2);
-                Band in_band3 = ds.GetRasterBand(3);
-                //in_band1.Fill(0, 255); // GdalConst.GMF_NODATA
-                in_band1.SetNoDataValue(0); // -9999
-                in_band2.SetNoDataValue(0);
-                in_band3.SetNoDataValue(0);
-
-                int BufferSize = 256 * 256 * 5; // GdalConst.GDT_Int32
-                for (int zoom = 10; zoom <= 18; zoom++)
-                {
-                    // 4.3 鏍规嵁鍘熷褰卞儚鍦扮悊鑼冨洿姹傝В鍒囩墖琛屽垪鍙�  // 缁忕含搴﹁浆鐡︾墖缂栧彿
-                    int tileRowMax = Lat2tile(ymin, zoom); // 绾害  -90 ->  90 lat
-                    int tileRowMin = Lat2tile(ymax, zoom);
-                    int tileColMin = Lon2tile(xmin, zoom); // 缁忓害 -180 -> 180 lon
-                    int tileColMax = Lon2tile(xmax, zoom);
-                    //int tileRowMax = lat2tile(latMin, zoom); // 绾害  -90 鈥斺��90  lat
-                    //int tileRowMin = lat2tile(latMax, zoom);  // 缁忓害 -180 -- 180 lon
-                    //int tileColMin = lon2tile(lonMin, zoom);
-                    //int tileColMax = lon2tile(lonMax, zoom);
-
-                    for (int col = tileColMin; col <= tileColMax; col++)
-                    {
-                        for (int row = tileRowMin; row <= tileRowMax; row++)
-                        {
-                            // 4.4 姹傚師濮嬪奖鍍忓湴鐞嗚寖鍥翠笌鎸囧畾缂╂斁绾у埆鎸囧畾琛屽垪鍙风殑鍒囩墖浜ら泦
-                            double tempLatMin = Tile2lat(row + 1, zoom);
-                            double tempLatMax = Tile2lat(row, zoom);
-                            double tempLonMin = Tile2lon(col, zoom);
-                            double tempLonMax = Tile2lon(col + 1, zoom);
-                            //double tempLatMin = tile2lat(row + 1, zoom);
-                            //double tempLatMax = tile2lat(row, zoom);
-                            //double tempLonMin = tile2lon(col, zoom);
-                            //double tempLonMax = tile2lon(col + 1, zoom);
-
-                            Console.WriteLine(string.Format("{0}\\{1}\\{2}.png", zoom, col, row));
-                            Geometry tileBound = CreatePolygon(tempLonMin, tempLonMax, tempLatMin, tempLatMax, sr4326);
-                            Geometry intersect = tileBound.Intersection(imageBound);
-                            if (null == intersect)
-                            {
-                                Console.WriteLine(string.Format("{0}\\{1}\\{2}.png锛屼笉瀛樺湪", zoom, col, row));
-                                continue;
-                            }
-                            Envelope env = new Envelope();
-                            intersect.GetEnvelope(env);
-
-                            // 4.5 姹傝В褰撳墠鍒囩墖鐨勫儚绱犲垎杈ㄧ巼(榛樿鍒囩墖澶у皬涓�256*256)
-                            // 鍒囩墖涓滆タ鏂瑰悜鍍忕礌鍒嗚鲸鐜�
-                            double dst_w_e_pixel_resolution = (tempLonMax - tempLonMin) / 256;
-                            // 鍒囩墖鍗楀寳鏂瑰悜鍍忕礌鍒嗚鲸鐜�
-                            double dst_n_s_pixel_resolution = (tempLatMax - tempLatMin) / 256;
-
-                            // 4.6 璁$畻浜ら泦鐨勫儚绱犱俊鎭�
-                            // 姹傚垏鍥捐寖鍥村拰鍘熷鍥惧儚浜ら泦鐨勮捣濮嬬偣鍍忕礌鍧愭爣
-                            int offset_x = (int)((env.MinX - xmin) / src_w_e_pixel_resolution);
-                            int offset_y = (int)Math.Abs((env.MaxY - ymax) / src_n_s_pixel_resolution);
-
-                            // 姹傚湪鍒囧浘鍦扮悊鑼冨洿鍐呯殑鍘熷鍥惧儚鐨勫儚绱犲ぇ灏�
-                            int block_xsize = (int)((env.MaxX - env.MinX) / src_w_e_pixel_resolution);
-                            int block_ysize = (int)((env.MaxY - env.MinY) / src_n_s_pixel_resolution);
-
-                            // 姹傚師濮嬪浘鍍忓湪鍒囩墖鍐呯殑鍍忕礌澶у皬
-                            int image_Xbuf = (int)Math.Ceiling((env.MaxX - env.MinX) / dst_w_e_pixel_resolution);
-                            int image_Ybuf = (int)Math.Ceiling(Math.Abs((env.MaxY - env.MinY) / dst_n_s_pixel_resolution));
-
-                            // 姹傚師濮嬪浘鍍忓湪鍒囩墖涓殑鍋忕Щ鍧愭爣
-                            int imageOffsetX = (int)((env.MinX - tempLonMin) / dst_w_e_pixel_resolution);
-                            int imageOffsetY = (int)Math.Abs((env.MaxY - tempLatMax) / dst_n_s_pixel_resolution);
-                            imageOffsetX = imageOffsetX > 0 ? imageOffsetX : 0;
-                            imageOffsetY = imageOffsetY > 0 ? imageOffsetY : 0;
-
-                            // 4.7 浣跨敤GDAL鐨凴eadRaster鏂规硶瀵瑰奖鍍忔寚瀹氳寖鍥磋繘琛岃鍙栦笌鍘嬬缉銆�
-                            // 鎺ㄨ崘鍦ㄥ垏鐗囧墠寤虹珛鍘熷褰卞儚鐨勯噾瀛楀鏂囦欢锛孯eadRaster鍦ㄥ唴閮ㄥ疄鐜颁腑鍙洿鎺ヨ鍙栫浉搴旂骇鍒殑閲戝瓧濉旀枃浠讹紝鎻愰珮鏁堢巼銆�
-                            int[] band1BuffData = new int[BufferSize]; // 256 * 256 * GdalConst.GDT_Int32
-                            int[] band2BuffData = new int[BufferSize];
-                            int[] band3BuffData = new int[BufferSize];
-
-                            try
-                            {
-                                //         ReadRaster(int xOff, int yOff, int xSize, int ySize, int[] buffer, int buf_xSize, int buf_ySize, int pixelSpace, int lineSpace)
-                                //in_band1.ReadRaster(offset_x, offset_y, block_xsize, block_ysize, image_Xbuf, image_Ybuf, GdalConst.GDT_Int32, band1BuffData, 0, 0);
-                                //in_band2.ReadRaster(offset_x, offset_y, block_xsize, block_ysize, image_Xbuf, image_Ybuf, GdalConst.GDT_Int32, band2BuffData, 0, 0);
-                                //in_band3.ReadRaster(offset_x, offset_y, block_xsize, block_ysize, image_Xbuf, image_Ybuf, GdalConst.GDT_Int32, band3BuffData, 0, 0);
-                                in_band1.ReadRaster(offset_x, offset_y, block_xsize, block_ysize, band1BuffData, image_Xbuf, image_Ybuf, 0, 0);
-                                in_band2.ReadRaster(offset_x, offset_y, block_xsize, block_ysize, band2BuffData, image_Xbuf, image_Ybuf, 0, 0);
-                                in_band3.ReadRaster(offset_x, offset_y, block_xsize, block_ysize, band3BuffData, image_Xbuf, image_Ybuf, 0, 0);
-
-                                // 4.8 灏嗗垏鐗囨暟鎹啓鍏ユ枃浠�
-                                // 浣跨敤gdal鐨凪EM椹卞姩鍦ㄥ唴瀛樹腑鍒涘缓涓�鍧楀尯鍩熷瓨鍌ㄥ浘鍍忔暟缁�
-                                OSGeo.GDAL.Driver memDriver = Gdal.GetDriverByName("MEM");
-                                Dataset msmDS = memDriver.Create("msmDS", 256, 256, 4, DataType.GDT_Int32, null);
-                                Band dstBand1 = msmDS.GetRasterBand(1);
-                                Band dstBand2 = msmDS.GetRasterBand(2);
-                                Band dstBand3 = msmDS.GetRasterBand(3);
-
-                                // 璁剧疆alpha娉㈡鏁版嵁,瀹炵幇鑳屾櫙閫忔槑
-                                Band alphaBand = msmDS.GetRasterBand(4);
-                                int[] alphaData = new int[BufferSize];
-                                for (int index = 0; index < alphaData.Length; index++)
-                                {
-                                    if (band1BuffData[index] > 0)
-                                    {
-                                        alphaData[index] = 255;
-                                    }
-                                }
-
-                                // 鍐欏悇涓尝娈垫暟鎹�
-                                //         WriteRaster(int xOff, int yOff, int xSize, int ySize, int[] buffer, int buf_xSize, int buf_ySize, int pixelSpace, int lineSpace)
-                                //dstBand1.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, band1BuffData);
-                                //dstBand2.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, band2BuffData);
-                                //dstBand3.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, band3BuffData);
-                                //alphaBand.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, alphaData);
-                                dstBand1.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, band1BuffData, image_Xbuf, image_Ybuf, 0, 0);
-                                dstBand2.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, band2BuffData, image_Xbuf, image_Ybuf, 0, 0);
-                                dstBand3.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, band3BuffData, image_Xbuf, image_Ybuf, 0, 0);
-                                alphaBand.WriteRaster(imageOffsetX, imageOffsetY, image_Xbuf, image_Ybuf, alphaData, image_Xbuf, image_Ybuf, 0, 0);
-
-                                //String pngPath = "D:\\xyz\\temp" + "\\" + zoom + "c" + col + "r" + row + ".png";
-                                //Console.WriteLine("pngPath=" + pngPath);
-                                string path = Path.Combine(outPath, zoom.ToString(), col.ToString());
-                                if (!Directory.Exists(path)) Directory.CreateDirectory(path);
-
-                                // 浣跨敤PNG椹卞姩灏嗗唴瀛樹腑鐨勫浘鍍忔暟缁勫啓鍏ユ枃浠�
-                                string pngPath = path + "\\" + row + ".png";
-                                OSGeo.GDAL.Driver pngDriver = Gdal.GetDriverByName("PNG");
-                                Dataset pngDs = pngDriver.CreateCopy(pngPath, msmDS, 0, null, null, null);
-
-                                // 閲婃斁鍐呭瓨
-                                msmDS.FlushCache();
-                                pngDs.Dispose();
-                            }
-                            catch (Exception ex)
-                            {
-                                Console.WriteLine(ex.Message);
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            finally
-            {
-                if (null != ds) ds.Dispose();
-                sw.Stop(); // 绋嬪簭缁撴潫
-                Console.WriteLine("鑰楁椂" + Math.Round(sw.ElapsedMilliseconds / 1000.0, 2) + "s"); // 绉�
-            }
-        }
-
-        /// <summary>
-        /// 鍒涘缓澶氳竟褰�
-        /// </summary>
-        public Geometry CreatePolygon(double xmin, double xmax, double ymin, double ymax, SpatialReference sr)
-        {
-            string kwt = string.Format("POLYGON (({0} {1},{2} {3},{4} {5},{6} {7},{0} {1}))", xmin, ymax, xmax, ymax, xmax, ymin, xmin, ymin);
-            Geometry geo = Geometry.CreateFromWkt(kwt);
-            geo.AssignSpatialReference(sr);
-
-            return geo;
-        }
-
-        /// <summary>
-        /// 缁忓害杞摝鐗囩紪鍙�
-        /// </summary>
-        public static int Lon2tile(double lon, int zoom)
-        {
-            return (int)(Math.Floor((lon + 180) / 360 * Math.Pow(2, zoom)));
-        }
-
-        /// <summary>
-        /// 绾害杞摝鐗囩紪鍙�
-        /// </summary>
-        public static int Lat2tile(double lat, int zoom)
-        {
-            return (int)(Math.Floor((1 - Math.Log(Math.Tan(lat * Math.PI / 180) + 1 / Math.Cos(lat * Math.PI / 180)) / Math.PI) / 2 * Math.Pow(2, zoom)));
-        }
-
-        /// <summary>
-        /// 鐡︾墖缂栧彿杞粡搴�
-        /// </summary>
-        public static double Tile2lon(int col, int zoom)
-        {
-            return col / Math.Pow(2.0, zoom) * 360.0 - 180;
-        }
-
-        /// <summary>
-        /// 鐡︾墖缂栧彿杞含搴�
-        /// </summary>
-        public static double Tile2lat(int row, int zoom)
-        {
-            double n = Math.PI - (2.0 * Math.PI * row) / Math.Pow(2.0, zoom);
-            return ToDegrees(Math.Atan(Math.Sinh(n)));
-        }
-
-        /// <summary>
-        /// 甯告暟e
-        /// </summary>
-        public static readonly double E = 2.7182818284590452354;
-
-        /// <summary>
-        /// 甯告暟Pi
-        /// </summary>
-        public static readonly double PI = 3.14159265358979323846;
-
-        /// <summary>
-        /// 搴﹁浆寮у害
-        /// </summary>
-        public static double ToRadians(double angdeg)
-        {
-            return angdeg / 180.0 * Math.PI;
-        }
-
-        /// <summary>
-        /// 寮у害杞害
-        /// </summary>
-        public static double ToDegrees(double angrad)
-        {
-            return angrad * 180.0 / Math.PI;
-        }
-        #endregion
     }
 }
diff --git a/DataLoader/MainWindow.xaml.cs b/DataLoader/MainWindow.xaml.cs
index 413e3f7..2fb2d78 100644
--- a/DataLoader/MainWindow.xaml.cs
+++ b/DataLoader/MainWindow.xaml.cs
@@ -88,9 +88,8 @@
             //this.Hide();
             //win.Show();
 
-            //SetLoginInfo();
+            SetLoginInfo();
             //GdalHelper.Instance.ReadTiff();
-            GdalHelper.Instance.GenerateTiles();
         }
 
         public void SetLoginInfo()

--
Gitblit v1.9.3