管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-05-06 a0ea5dbbabd0dec22f287a536d7526f2df805ad5
1
已修改3个文件
51 ■■■■ 文件已修改
ExportMap/Controllers/ConvertController.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ExportMap/cs/TerraUtils.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ExportMap/export.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ExportMap/Controllers/ConvertController.cs
@@ -161,6 +161,21 @@
                {
                    return ResponseMsg<string>.fail("令牌无效");
                }
                if (string.IsNullOrWhiteSpace(args.dircode))
                {
                    return ResponseMsg<string>.fail("单位代码不能为空");
                }
                if (args.min < 0) args.min = 0;
                if (args.min > 22) args.min = 22;
                if (args.max < 0) args.max = 0;
                if (args.max > 22) args.max = 22;
                if (args.min > args.max)
                {
                    int tmp = args.min;
                    args.min = args.max;
                    args.max = tmp;
                }
                string err = null;
                List<int> rs = TerraUtils.Generate(args, ref err);
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)
        {
        }
    }
}
ExportMap/export.html
@@ -5,7 +5,7 @@
  <title></title>
  <script src="js/jquery.1.12.4.js"></script>
  <script>
    var token = "af7f814c-9f3d-4123-af04-70abb7d5a21c";
    var token = "c9530551-ebca-46bc-b8ea-25590153d1a3";
    // Ajax
    function ajax(url, type, data, dataType, contentType, fn) {
@@ -122,7 +122,7 @@
    
    // 测试Terra
    function toTerra() {
      var data = { token: token, ids: [7088, 7089, 7090], depcode: "00", dircode: "0C00000003", userId: 1 };
      var data = { token: token, ids: [7088, 7089, 7090], min: 4, max: 18, depcode: "00", dircode: "0C00000003", userId: 1, name: "astgtm2" };
      ajax("Convert/ToTerra", "POST", JSON.stringify(data), null, null, function (rs) {
        alert("code = " + rs.code + ", msg = " + rs.msg + ", result = " + rs.result);
        console.log(rs);