管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-05-06 a0ea5dbbabd0dec22f287a536d7526f2df805ad5
ExportMap/cs/TerraUtils.cs
@@ -73,9 +73,9 @@
        /// <summary>
        /// 获取地形路径
        /// </summary>
        public static string GetTerrainPath(XYZArgs args)
        public static string GetTerrainPath(string dircode)
        {
            return Path.Combine(SGUtils.LFData, "3d\\terrain", args.dircode);
            return Path.Combine(SGUtils.LFData, "3d\\terrain", dircode);
        }
        /// <summary>
@@ -92,8 +92,8 @@
                tifFile = Merge(args, ref err);
                if (!File.Exists(tifFile)) return null;
                Generate(args, tifFile);
                Generate(args, tifFile, ref err);
                Save(args);
                return null;
            }
@@ -124,7 +124,7 @@
                if (null == list || list.Count == 0) return null;
                txtFile = Path.Combine(Tools.TempDir, ExportUtil.DateStr + ".txt");
                string dirPath = GetTerrainPath(args);
                string dirPath = GetTerrainPath(args.dircode);
                if (!Directory.Exists(dirPath)) Directory.CreateDirectory(dirPath);
                string tifFile = Path.Combine(dirPath, args.dircode + ".tif");
@@ -173,9 +173,27 @@
        /// <summary>
        /// 生成高程切片
        /// </summary>
        private static void Generate(XYZArgs args, string tifFile)
        private static void Generate(XYZArgs args, string tifFile, ref string err)
        {
            string dirPath = GetTerrainPath(args);
            string dirPath = GetTerrainPath(args.dircode).Replace("\\", "/");
            string name = "ctb_" + ExportUtil.DateStr;
            string runDocker = string.Format("docker run -it --name {0} -v \"{1}\":\"/data\" tumgis/ctb-quantized-mesh", name, dirPath);
            string createMesh = string.Format("ctb-tile -f Mesh -C -N -s {0} -e {1} -o /data /data/{2}.tif", args.max, args.min, args.dircode);
            string createLayer = string.Format("ctb-tile -f Mesh -C -N -s {0} -e {1} -l -o /data /data/{0}.tif", args.max, args.min, args.dircode);
            string exit = "exit";
            string rm = string.Format("docker rm {0}", name);
            List<string> list = new List<string> { runDocker, createMesh, createLayer, exit, rm };
            err = Tools.ExecCmd(list);
        }
        /// <summary>
        /// 保存
        /// </summary>
        private static void Save(XYZArgs args)
        {
        }
    }
}