管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-03-14 7e52f7c8182689df70b283836c4de4123c0a5597
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
using ExportMap.db;
using ExportMap.Models;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
 
namespace ExportMap.cs
{
    public class XYZUtils
    {
 
        private static string pyFile;
 
        /// <summary>
        /// 获取Python文件
        /// </summary>
        public static string PyFile
        {
            get
            {
                if (string.IsNullOrWhiteSpace(pyFile))
                {
                    pyFile = Path.Combine(ExportUtil.SourcesPath, "xyz.py");
                }
 
                return pyFile;
            }
        }
 
        /// <summary>
        /// QGIS工程
        /// </summary>
        public static string Qgz
        {
            get
            {
                return "xyz.qgz";
            }
        }
 
        /// <summary>
        /// 生成
        /// </summary>
        /// <param name="args">XYZ参数</param>
        /// <param name="err">错误信息</param>
        /// <returns>数据发布ID</returns>
        public static int Generate(XYZArgs args, ref string err)
        {
            string tifFile = Path.Combine(ExportUtil.SourcesPath, ExportUtil.DateStr + ".txt");
            string xyzPath = Path.Combine(SGUtils.LFData, "2d\\tiles", args.id.ToString());
            if (!Directory.Exists(xyzPath)) Directory.CreateDirectory(xyzPath);
 
            string cmd = string.Format("python {0} -qgz {1} -file {2} -out {3} -min {4} -max {5}", PyFile, Qgz, tifFile, xyzPath, args.min, args.max);
            err = Tool.ExecCmd(cmd, true);
 
            return args.id;
        }
 
        /// <summary>
        /// 查询元数据
        /// </summary>
        private static List<SysMeta> selectMetas(string dircode)
        {
            string sql = string.Format("select * from lf.sys_meta where dircode like '{0}%'", dircode);
 
            DataTable dt = Tool.DBHelper.GetDataTable(sql);
            List<SysMeta> list = ModelHandler.FillModel<SysMeta>(dt);
 
            return list;
        }
 
        /// <summary>
        /// 查询元数据
        /// </summary>
        private static List<SysMeta> selectMetas(List<int> ids)
        {
            string sql = string.Format("select * from lf.sys_meta where id in ({0})", string.Join(",", ids));
            DataTable dt = Tool.DBHelper.GetDataTable(sql);
            List<SysMeta> list = ModelHandler.FillModel<SysMeta>(dt);
 
            return list;
        }
 
 
    }
}