| | |
| | | { |
| | | if (string.IsNullOrWhiteSpace(pyFile)) |
| | | { |
| | | pyFile = Path.Combine(ExportUtil.SourcesPath, "xyz.py"); |
| | | pyFile = Path.Combine(ExportUtil.SourcesPath, "xyz2.py"); |
| | | } |
| | | |
| | | return pyFile; |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取发布地址 |
| | | /// 获取发布地址:http://localhost/ExportMap/tile0/{z}/{x}/{y}.png?path=2d\tiles\0102 |
| | | /// </summary> |
| | | public static string GetReleaseUrl(string dircode) |
| | | { |
| | | return "http://{host}/LFData/2d/tiles/" + dircode + "/{z}/{x}/{y}.png"; |
| | | //return "http://{host}/LFData/2d/tiles/" + dircode + "/{z}/{x}/{y}.png"; |
| | | return "{host}/ExportMap/tile0/{z}/{x}/{y}.png?path=2d/tiles/" + dircode; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | string dateStr = ExportUtil.DateStr; |
| | | //string batFile = Path.Combine(BatPath, dateStr + ".bat"); |
| | | string tifFile = Path.Combine(Tools.TempDir, ExportUtil.DateStr + ".txt"); |
| | | string txtFile = Path.Combine(Tools.TempDir, ExportUtil.DateStr + ".txt"); |
| | | string xyzPath = Path.Combine(SGUtils.LFData, "2d\\tiles", args.dircode); |
| | | if (args.isNew && Directory.Exists(xyzPath)) Tools.DelPath(xyzPath); |
| | | //if (args.isNew && Directory.Exists(xyzPath)) Tools.DelPath(xyzPath); // 已存在的,删除 |
| | | if (!Directory.Exists(xyzPath)) Directory.CreateDirectory(xyzPath); |
| | | |
| | | WriteText(tifFile, list); |
| | | int pubid = PubDBHelper.GetPushlishId(args.dircode, "DOM"); |
| | | List<int> mids = PubDBHelper.GetPublishMetaId(pubid); |
| | | WriteText(txtFile, list, mids); |
| | | |
| | | string cmd = string.Format("python \"{0}\" -qgz {1} -file \"{2}\" -out \"{3}\" -min {4} -max {5} -noData {6}", PyFile, Qgz, tifFile, xyzPath, args.min, args.max, args.noData); |
| | | |
| | | //err = Tools.ExecCmd(GetCmds(batFile, cmd)); |
| | | err = Tools.ExecCmd(cmd, true, false); |
| | | string cmd = string.Format("python \"{0}\" -qgz {1} -file \"{2}\" -out \"{3}\" -min {4} -max {5} -noData {6}", PyFile, Qgz, txtFile, xyzPath, args.min, args.max, args.noData); |
| | | SysTask task = TaskDBHelper.CreateTask(args, "DOM", "影像数据(DOM)"); |
| | | err = Tools.ExecCmd(task, cmd, true); |
| | | |
| | | //if (File.Exists(batFile)) File.Delete(batFile); |
| | | if (File.Exists(tifFile)) File.Delete(tifFile); |
| | | if (File.Exists(txtFile)) File.Delete(txtFile); |
| | | |
| | | List<int> ids = new List<int>(); |
| | | string viewFile = Path.Combine(xyzPath, "view.html"); |
| | | if (File.Exists(viewFile)) |
| | | { |
| | | string path = "2d\\tiles" + "\\" + args.dircode; |
| | | int pubid = InsertToDB(list, args, path); |
| | | pubid = InsertToDB(list, args, path); |
| | | |
| | | if (pubid > 0) ids.Add(pubid); |
| | | } |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取命令行 |
| | | /// </summary> |
| | | private static List<string> GetCmds(string batFile, string cmd) |
| | | { |
| | | string str = File.ReadAllText(BaseBat) + cmd; |
| | | File.WriteAllText(batFile, str); |
| | | |
| | | return new List<string>() { "\"" + batFile + "\"" }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询元数据 |
| | | /// </summary> |
| | | public static List<SysMeta> SelectMetas(List<int> ids, string types = "") |
| | | { |
| | | string sql = string.Format("select a.*, fn_get_fullname(dircode, 2) dirname from lf.sys_meta a where id in ({0}) {1} order by id", string.Join(",", ids), types); |
| | | string sql = string.Format("select a.*, fn_get_fullname(dircode, 2) dirname from lf.sys_meta a where id in ({0}) {1} order by id desc", string.Join(",", ids), types); |
| | | DataTable dt = Tools.DBHelper.GetDataTable(sql); |
| | | List<SysMeta> list = ModelHandler.FillModel<SysMeta>(dt); |
| | | |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据ID查询元数据 |
| | | /// </summary> |
| | | public static SysMeta SelectMeta(int id) |
| | | { |
| | | string sql = string.Format("select a.*, fn_get_fullname(dircode, 2) dirname from lf.sys_meta a where id = {0}", id); |
| | | |
| | | DataTable dt = Tools.DBHelper.GetDataTable(sql); |
| | | List<SysMeta> list = ModelHandler.FillModel<SysMeta>(dt); |
| | | |
| | | return null == list || list.Count == 0 ? null : list[0]; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 写文本文件 |
| | | /// </summary> |
| | | private static void WriteText(string file, List<SysMeta> list) |
| | | private static void WriteText(string file, List<SysMeta> list, List<int> mids) |
| | | { |
| | | string uploadFolder = Tools.GetSetting("uploadFolder"); |
| | | |
| | |
| | | foreach (SysMeta meta in list) |
| | | { |
| | | string filePath = Path.Combine(uploadFolder, meta.path); |
| | | if (File.Exists(filePath)) files.Add(filePath); |
| | | if (!File.Exists(filePath)) continue; |
| | | |
| | | bool exists = mids.Contains(meta.id); |
| | | files.Add(string.Format("{0},{1}", filePath, exists ? 1 : 0)); |
| | | } |
| | | //files.Add(@"E:\01.Data\33.DOM\2.大庆DOM\5154.50-415.50.tif"); |
| | | //files.Add(@"E:\01.Data\33.DOM\2.大庆DOM\5154.50-416.00.tif"); |
| | | string str = string.Join("\n", files); |
| | | string str = string.Join("\r\n", files); |
| | | |
| | | File.WriteAllText(file, str); |
| | | } |
| | |
| | | /// </summary> |
| | | private static int InsertToDB(List<SysMeta> metas, XYZArgs args, string path) |
| | | { |
| | | if (PubDBHelper.IsPublish(args.dircode)) return 0; |
| | | //if (PubDBHelper.IsPublish(args.dircode, "DOM")) return 1; |
| | | int pubid = PubDBHelper.GetPushlishId(args.dircode, "DOM"); |
| | | if (pubid > 0) // 更新发布 |
| | | { |
| | | List<int> ids = PubDBHelper.GetPublishMetaId(pubid); |
| | | foreach (SysMeta m in metas) |
| | | { |
| | | if (!ids.Contains(m.id)) PubDBHelper.InsertMetaPub(m.id, pubid, args.userId); |
| | | } |
| | | string geom = GetPointZ(args); |
| | | PubDBHelper.UpdatePublish(pubid, args.name, args.userId, geom); |
| | | |
| | | return pubid; |
| | | } |
| | | |
| | | SysMeta meta = metas[0]; |
| | | meta.type = "DOM"; |
| | | meta.name = args.name; |
| | | meta.dircode = args.dircode; |
| | | |
| | | SysPublish sys = Tools.NewPublish(meta, args, GetReleaseUrl(args.dircode), path); |
| | | sys.geom = GetPointZ(args); |
| | | |
| | | int pubid = PubDBHelper.InsertPublish(sys); |
| | | pubid = PubDBHelper.InsertPublish(sys); |
| | | if (pubid > 0) |
| | | { |
| | | sys.id = pubid; |