From 7fe636ae5fd5ab6636c250d07835ee044d3c77c8 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 17 三月 2023 19:48:21 +0800 Subject: [PATCH] 1 --- ExportMap/cs/SGUtils.cs | 2 +- ExportMap/cs/XYZUtils.cs | 27 ++++++++++++++++++++++++--- ExportMap/db/PubDBHelper.cs | 7 ++++--- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/ExportMap/cs/SGUtils.cs b/ExportMap/cs/SGUtils.cs index f47c7f5..ed30e38 100644 --- a/ExportMap/cs/SGUtils.cs +++ b/ExportMap/cs/SGUtils.cs @@ -84,7 +84,7 @@ List<SysMeta> list = XYZUtils.selectMetas(args.ids, "and type in ('mpt', '3dml')"); if (null == list || list.Count == 0) return 0; - int maxId = GetMaxId(); maxId = 411576; // + int maxId = GetMaxId(); // maxId = 411576; RomoveNoneFiles(list); if (list.Count == 0) return 0; diff --git a/ExportMap/cs/XYZUtils.cs b/ExportMap/cs/XYZUtils.cs index b026c6e..53d2871 100644 --- a/ExportMap/cs/XYZUtils.cs +++ b/ExportMap/cs/XYZUtils.cs @@ -87,7 +87,7 @@ string viewFile = Path.Combine(xyzPath, "view.html"); if (File.Exists(viewFile)) { - string path = ""; + string path = "2d\\tiles" + "\\" + args.dircode; InsertToDB(list, args, path); return 1; } @@ -191,7 +191,10 @@ int pubid = PubDBHelper.InsertPublish(sys); if (pubid > 0) { - //PubDBHelper.InsertMetaPub(meta.id, pubid); + foreach (SysMeta meta in metas) + { + PubDBHelper.InsertMetaPub(meta.id, pubid, args.userId); + } } } @@ -211,10 +214,28 @@ sp.max = args.max; sp.json = null; sp.create_user = args.userId; - sp.geom = null; + sp.geom = GetPointZ(args); sp.bak = null; return sp; } + + /// <summary> + /// 鑾峰彇涓績鐐� + /// </summary> + private static string GetPointZ(XYZArgs args) + { + string viewFile = Path.Combine(SGUtils.LFData, "2d\\tiles", args.dircode, "view.html"); + if (!File.Exists(viewFile)) return null; + + string str = File.ReadAllText(viewFile); + int start = str.IndexOf(".setView([") + ".setView([".Length; + int end = str.IndexOf(");", start); + + string coords = str.Substring(start, end - start).Replace("]", "").Replace(" ", ""); + string[] strs = coords.Split(new char[] { ',' }); + + return string.Format("ST_GeomFromText('POINT Z ({0} {1} {2})')", strs[0], strs[1], strs[2]); + } } } diff --git a/ExportMap/db/PubDBHelper.cs b/ExportMap/db/PubDBHelper.cs index 69e4ef9..c15cd16 100644 --- a/ExportMap/db/PubDBHelper.cs +++ b/ExportMap/db/PubDBHelper.cs @@ -12,7 +12,7 @@ { public class PubDBHelper { - private static string insertPublishSql = "insert into lf.sys_publish(name, url, path, type, status, dirid, depid, min, max, json, create_user, geom, bak) values (@name, @url, @path, @type, @status, @dirid, @depid, @min, @max, @json, @create_user, @geom, @bak) returning id"; + private static string insertPublishSql = "insert into lf.sys_publish(name, url, path, type, status, dirid, depid, min, max, json, create_user, geom, bak) values (@name, @url, @path, @type, @status, @dirid, @depid, @min, @max, @json, @create_user, {0}, @bak) returning id"; private static string insertMetaPubSql = "insert into lf.sys_meta_pub (metaid, pubid, create_user) select {0}, {1}, {2} from (select 1) temp where not exists (select 1 from lf.sys_meta_pub where metaid = {0} and pubid = {1})"; @@ -34,7 +34,7 @@ /// </summary> public static bool IsPublish(string dirid) { - string sql = "select count(*) from lf.sys_meta_pub a inner join lf.sys_publish b on a.pubid = b.id where b.dirid = @dirid"; + string sql = "select count(*) from lf.sys_meta_pub a inner join lf.sys_publish b on a.pubid = b.id where b.type = 'DOM' and b.dirid = @dirid"; DbParameter dp = new NpgsqlParameter("@dirid", dirid); object obj = Tool.DBHelper.GetScalar(sql, dp); @@ -60,8 +60,9 @@ public static int InsertPublish(SysPublish sys) { List<DbParameter> list = Tool.GetParams<SysPublish>(insertPublishSql, sys); + string sql = string.Format(insertPublishSql, sys.geom == null ? "null" : sys.geom); - object obj = Tool.DBHelper.GetScalar(insertPublishSql, list.ToArray()); + object obj = Tool.DBHelper.GetScalar(sql, list.ToArray()); return obj == null ? 0 : Convert.ToInt32(obj); } -- Gitblit v1.9.3