管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-03-16 1ee6b76e83ae6073e77e48b2246fd773e970ebc2
1
已修改1个文件
60 ■■■■■ 文件已修改
ExportMap/cs/XYZUtils.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ExportMap/cs/XYZUtils.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Web;
@@ -58,7 +59,7 @@
            WriteText(tifFile, list);
            //string cmd = string.Format("python \"{0}\" -qgz {1} -file \"{2}\" -out \"{3}\" -min {4} -max {5}", PyFile, Qgz, tifFile, xyzPath, args.min, args.max);
            string cmd = string.Format("python \"{0}\" -qgz {1} -file \"{2}\" -out \"{3}\" -min {4} -max {5}", PyFile, Qgz, tifFile, xyzPath, args.min, args.max);
            string pyText = File.ReadAllText(PyFile);
            pyText = pyText
@@ -70,9 +71,10 @@
            string newPy = tifFile.Replace(".txt", ".py").Replace("\\", "\\\\");
            File.WriteAllText(newPy, pyText);
           string cmd = string.Format("exec(open('{0}', 'r', encoding='utf-8').read()) & exit()", newPy);
            //string cmd = string.Format("exec(open('{0}', 'r', encoding='utf-8').read()) & exit()", newPy);
            err = Tool.ExecCmd(cmd, true);
            err = ExecCmd(cmd);
            if (File.Exists(tifFile)) File.Delete(tifFile);
@@ -110,5 +112,57 @@
            File.WriteAllText(file, str);
        }
        /// <summary>
        /// 执行CMD
        /// </summary>
        /// <param name="cmd">命令行</param>
        /// <returns>执行结果或出错信息</returns>
        public static String ExecCmd(string cmd)
        {
            string str = null;
            try
            {
                Process p = new Process();
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.CreateNoWindow = true;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;
                p.Start();
                StreamWriter si = p.StandardInput; // 标准输入流
                StreamReader so = p.StandardOutput; // 标准输出流
                StreamReader se = p.StandardError; // 标准错误流
                LogOut.Info("cmd = " + cmd);
                si.AutoFlush = true;
                //si.WriteLine("cd \"C:\\Program Files\\QGIS 3.16\\apps\\Python37\"");
                si.WriteLine("\"C:\\Program Files\\QGIS 3.16\\bin\\python-qgis-ltr.bat\"");
                //si.WriteLine("exit()");
                si.WriteLine(cmd);
                si.WriteLine("exit");
                string info = so.ReadToEnd();
                str = se.ReadToEnd();
                if (!string.IsNullOrEmpty(info)) LogOut.Debug(info);
                if (!string.IsNullOrEmpty(str)) LogOut.Error(str);
                if (p.HasExited == false) p.Kill();
                se.Close();
                so.Close();
                si.Close();
                p.Close();
            }
            catch (Exception ex)
            {
                LogOut.Error(ex.StackTrace);
                str = ex.Message;
            }
            return str;
        }
    }
}