管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-05-06 0fcf91aad599189ea996362ed3fe3952c043f1ea
1
已修改1个文件
62 ■■■■■ 文件已修改
ExportMap/cs/TerraUtils.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ExportMap/cs/TerraUtils.cs
@@ -67,7 +67,7 @@
        /// </summary>
        public static string GetReleaseUrl(string dircode)
        {
            return "http://{host}/LFData/2d/tiles/" + dircode + "/{z}/{x}/{y}.png";
            return "http://{host}/LFData/3d/terrain/" + dircode;
        }
        /// <summary>
@@ -78,7 +78,67 @@
        /// <returns>数据发布ID集合</returns>
        public static List<int> Generate(XYZArgs args, ref string err)
        {
            string tifFile = Merge(args, ref err);
            return null;
        }
        /// <summary>
        /// 合并
        /// </summary>
        public static string Merge(XYZArgs args, ref string err)
        {
            string txtFile = null;
            try
            {
                List<SysMeta> list = XYZUtils.SelectMetas(args.ids, "and type in ('tif', 'tiff')");
                if (null == list || list.Count == 0) return null;
                txtFile = Path.Combine(Tools.TempDir, ExportUtil.DateStr + ".txt");
                string dirPath = Path.Combine(SGUtils.LFData, "3d\\terrain", args.dircode);
                if (!Directory.Exists(dirPath)) Directory.CreateDirectory(dirPath);
                string tifFile = Path.Combine(dirPath, dirPath + ".tif");
                if (File.Exists(tifFile)) File.Delete(tifFile);
                WriteText(txtFile, list);
                string cmd = string.Format("python \"{0}\" -qgz {1} -file \"{2}\" -out \"{3}\"", PyFile, Qgz, txtFile, tifFile);
                err = Tools.ExecCmd(cmd, true);
                return tifFile;
            }
            catch (Exception ex)
            {
                err = ex.Message;
                return null;
            }
            finally
            {
                if (!string.IsNullOrEmpty(txtFile) && File.Exists(txtFile))
                {
                    File.Delete(txtFile);
                }
            }
        }
        /// <summary>
        /// 写文本文件
        /// </summary>
        private static void WriteText(string txtFile, List<SysMeta> list)
        {
            string uploadFolder = Tools.GetSetting("uploadFolder");
            List<string> files = new List<string>();
            foreach (SysMeta meta in list)
            {
                string filePath = Path.Combine(uploadFolder, meta.path);
                if (File.Exists(filePath)) files.Add(filePath);
            }
            string str = string.Join("\n", files);
            File.WriteAllText(txtFile, str);
        }
    }
}