管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2024-07-20 38ab580897dd25f84742a4c11d3033853f1513d6
1
已修改1个文件
24 ■■■■■ 文件已修改
SimuTools/Tools/Handle.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SimuTools/Tools/Handle.cs
@@ -36,9 +36,9 @@
            if (!Directory.Exists(temp)) Directory.CreateDirectory(temp);
            CopeTerrain(terrainFile, outPath, layer);
            CopeWater(waterPath, outPath, layer);
            //CopeWater(waterPath, outPath, layer);
            CopeFlow(flowPath, outPath, layer);
            //CopeLayerJson(outPath, layer);
            CopeLayerJson(outPath, layer);
            if (Directory.Exists(temp)) Directory.Delete(temp, true);
        }
@@ -56,7 +56,7 @@
                if (null == ds || 0 == ds.RasterCount || null == ds.GetSpatialRef()) return;
                SetTerrainInfo(ds, layer);
                CreateTerrainPng(ds, layer, outPath);
                //CreateTerrainPng(ds, layer, outPath);
            }
            finally
            {
@@ -181,8 +181,8 @@
                {
                    for (int y = 0; y < height; y++)
                    {
                        int offset = x + y * height;
                        if (float.IsNaN(buffer[offset]) || buffer[offset] == -9999)
                        int offset = x + y * width;
                        if (float.IsNaN(buffer[offset]) || buffer[offset] < -999)
                        {
                            //image.SetPixel(x, y, Color.Transparent);
                            continue;
@@ -388,20 +388,26 @@
                Graphics graphic = Graphics.FromImage(image);
                graphic.Clear(Color.Transparent); // 填充透明色
                // 用 R通道表示,流向为归一化的二维向量(x,y),G通道表示为 x *255 , B通道表示为 y * 255
                for (int x = 0; x < width; x++)
                {
                    for (int y = 0; y < height; y++)
                    {
                        //int offset = x + y * height;
                        //if (float.IsNaN(vxBuffer[offset]) || vxBuffer[offset] == -9999) continue;
                        int offset = x + y * width;
                        if (float.IsNaN(vxBuffer[offset]) || vxBuffer[offset] < -999 ||
                            float.IsNaN(vyBuffer[offset]) || vyBuffer[offset] < -999) continue;
                        float vx = vxBuffer[offset], vy = vyBuffer[offset];
                        //int val = Convert.ToInt32(vxBuffer[offset] * 100);
                        //int r = val / 65536;
                        //int g = (val - r * 65536) / 256;
                        //int b = val % 256;
                        int r = 0;
                        int g = 0;
                        int b = 0;
                        //Color color = Color.FromArgb(127, r, g, b);
                        //image.SetPixel(x, y, color);
                        Color color = Color.FromArgb(127, r, g, b);
                        image.SetPixel(x, y, color);
                    }
                }