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;
///
/// 获取Python文件
///
public static string PyFile
{
get
{
if (string.IsNullOrWhiteSpace(pyFile))
{
pyFile = Path.Combine(ExportUtil.SourcesPath, "xyz.py");
}
return pyFile;
}
}
///
/// QGIS工程
///
public static string Qgz
{
get
{
return "xyz.qgz";
}
}
///
/// 生成
///
/// XYZ参数
/// 错误信息
/// 数据发布ID
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;
}
///
/// 查询元数据
///
public static List selectMetas(string dircode)
{
string sql = string.Format("select * from lf.sys_meta where dircode like '{0}%'", dircode);
DataTable dt = Tool.DBHelper.GetDataTable(sql);
List list = ModelHandler.FillModel(dt);
return list;
}
///
/// 查询元数据
///
public static List selectMetas(List ids, string types = "")
{
string sql = string.Format("select * from lf.sys_meta where id in ({0}) {1} order by id", string.Join(",", ids), types);
DataTable dt = Tool.DBHelper.GetDataTable(sql);
List list = ModelHandler.FillModel(dt);
return list;
}
}
}