From 5f80de49c4a00416591054180bf809a12a76d686 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期四, 07 十一月 2024 16:40:53 +0800 Subject: [PATCH] 1 --- ExportMap/Controllers/ConvertController.cs | 352 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 294 insertions(+), 58 deletions(-) diff --git a/ExportMap/Controllers/ConvertController.cs b/ExportMap/Controllers/ConvertController.cs index 25aedd8..27320d8 100644 --- a/ExportMap/Controllers/ConvertController.cs +++ b/ExportMap/Controllers/ConvertController.cs @@ -1,7 +1,9 @@ 锘縰sing ExportMap.cs; +using ExportMap.db; using ExportMap.Models; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Net; using System.Net.Http; @@ -11,26 +13,36 @@ { public class ConvertController : ApiController { + [HttpGet] + public string Test() + { + //string cnName = "8-鐟炰附绔�0.05m.cpt".Substring(0, "8-鐟炰附绔�0.05m.cpt".LastIndexOf(".")); + //return Tools.GetLocalIP(); + //return Tools.GetEPSG("D:\\Moon\\data\\dem_tif\\ldem.tif"); + //TerrainUtils.Reproject("D:/xyz/dem/dem/32a.tif", "D:/xyz/dem/dem/32a_4326_.tif", "EPSG:4528", "EPSG:4326"); + //TerrainUtils.Project("D:/xyz/dem/dem/32a_4326_.tif", "EPSG:4490"); + //string wkt = TerrainUtils.GetPointZ(new XYZArgs() { dircode = "0B" }); + //PyLasUtils.CsTransform("EPSG:4528", 400925.079, 2541768.173); + //string json = PyLasUtils.GetLasGeomJSON(@"D:\LF\data\las\1_lfz_0.05m.las", 1314); + //TerrainUtils.Complement(new XYZArgs() { dircode = "00" }); + + ExportArgs args = new ExportArgs() { title = "Test" }; + SysTask task = TaskDBHelper.CreateTask(ExportUtil.ToXYZArgs(args), "PNG", "鍦ㄧ嚎鍒跺浘(PNG)"); + Tools.ExecCmd(task, "dir", true, true); + + return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + } + /// <summary> - /// 杞崲涓篢ileset + /// 杞崲Tileset /// </summary> [HttpPost] public ResponseMsg<string> ToTileset([FromBody]XYZArgs args) { try { - if (null == args || null == args.ids || args.ids.Count == 0) - { - return ResponseMsg<string>.fail("璇疯緭鍏ュ厓鏁版嵁ID"); - } - if (string.IsNullOrWhiteSpace(args.token)) - { - return ResponseMsg<string>.fail("娌℃湁浠ょ墝"); - } - if (!ExportUtil.VerifyToken(args.token)) - { - return ResponseMsg<string>.fail("浠ょ墝鏃犳晥"); - } + ResponseMsg<string> msg = checkArgs(args); + if (null != msg) return msg; List<int> rs = ConvertUtils.Convert(args); if (null == rs || rs.Count == 0) @@ -48,43 +60,17 @@ } /// <summary> - /// 杞崲涓虹摝鐗� + /// 杞崲鐡︾墖 /// </summary> [HttpPost] public ResponseMsg<string> ToTiles([FromBody]XYZArgs args) { try { - if (null == args || null == args.ids || args.ids.Count == 0) - { - return ResponseMsg<string>.fail("璇疯緭鍏ュ厓鏁版嵁ID"); - } - if (string.IsNullOrWhiteSpace(args.token)) - { - return ResponseMsg<string>.fail("娌℃湁浠ょ墝"); - } - if (!ExportUtil.VerifyToken(args.token)) - { - return ResponseMsg<string>.fail("浠ょ墝鏃犳晥"); - } - if (string.IsNullOrWhiteSpace(args.dircode)) - { - return ResponseMsg<string>.fail("鍗曚綅浠g爜涓嶈兘涓虹┖"); - } + ResponseMsg<string> msg = checkArgs(args, true); + if (null != msg) return msg; - 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; - } - - if (args.noData < 0) args.noData = 0; - if (args.noData > 255) args.noData = 255; + checkMinMax(args, true); string err = null; List<int> rs = XYZUtils.Generate(args, ref err); @@ -103,29 +89,18 @@ } /// <summary> - /// 杞崲涓虹摝鐗� + /// 杞崲鐡︾墖 /// </summary> [HttpPost] public ResponseMsg<string> ToSG([FromBody]XYZArgs args) { try { - if (null == args || null == args.ids || args.ids.Count == 0) - { - return ResponseMsg<string>.fail("璇疯緭鍏ュ厓鏁版嵁ID"); - } - if (string.IsNullOrWhiteSpace(args.token)) - { - return ResponseMsg<string>.fail("娌℃湁浠ょ墝"); - } - if (!ExportUtil.VerifyToken(args.token)) - { - return ResponseMsg<string>.fail("浠ょ墝鏃犳晥"); - } - - SGUtils utils = new SGUtils(); + ResponseMsg<string> msg = checkArgs(args); + if (null != msg) return msg; string err = null; + SGUtils utils = new SGUtils(); List<int> rs = utils.Release(args, ref err); if (null == rs || rs.Count == 0) { @@ -140,5 +115,266 @@ return ResponseMsg<string>.fail(ex.Message); } } + + /// <summary> + /// 杞崲鍦板舰 + /// </summary> + [HttpPost] + public ResponseMsg<string> ToTerra([FromBody]XYZArgs args) + { + try + { + ResponseMsg<string> msg = checkArgs(args, true); + if (null != msg) return msg; + + checkMinMax(args); + + string err = null; + //List<int> rs = TerraUtils.Generate(args, ref err); + List<int> rs = TerrainUtils.Generate(args, ref err); + if (null == rs || rs.Count == 0) + { + return ResponseMsg<string>.fail(null == err ? "澶辫触" : err); + } + + return ResponseMsg<string>.success("鎴愬姛", string.Join(",", rs), rs.Count); + } + catch (Exception ex) + { + LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); + return ResponseMsg<string>.fail(ex.Message); + } + } + + /// <summary> + /// 杞崲LAS + /// </summary> + [HttpPost] + public ResponseMsg<string> ToLas([FromBody]XYZArgs args) + { + try + { + ResponseMsg<string> msg = checkArgs(args); + if (null != msg) return msg; + + if (args.srids.Count != args.ids.Count) return ResponseMsg<string>.fail("鍧愭爣绯籌D闆嗗悎涓庡厓鏁版嵁ID闆嗗悎闀垮害涓嶄竴鑷�"); + if (args.zs.Count != args.ids.Count) return ResponseMsg<string>.fail("楂樺害鍋忕Щ閲忛泦鍚堜笌鍏冩暟鎹甀D闆嗗悎闀垮害涓嶄竴鑷�"); + + string err = null; + List<int> rs = LasUtils.Generate(args, ref err); + if (null == rs || rs.Count == 0) + { + return ResponseMsg<string>.fail(null == err ? "澶辫触" : err); + } + + return ResponseMsg<string>.success("鎴愬姛", string.Join(",", rs), rs.Count); + } + catch (Exception ex) + { + LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); + return ResponseMsg<string>.fail(ex.Message); + } + } + + /// <summary> + /// 杞崲OSGB + /// </summary> + [HttpPost] + public ResponseMsg<string> ToOsgb([FromBody]XYZArgs args) + { + try + { + ResponseMsg<string> msg = checkArgs(args); + if (null != msg) return msg; + + if (args.zs.Count != args.ids.Count) return ResponseMsg<string>.fail("楂樺害鍋忕Щ閲忛泦鍚堜笌鍏冩暟鎹甀D闆嗗悎闀垮害涓嶄竴鑷�"); + + string err = null; + List<int> rs = OsgbUtils.Generate(args, ref err); + if (null == rs || rs.Count == 0) + { + return ResponseMsg<string>.fail(null == err ? "澶辫触" : err); + } + + return ResponseMsg<string>.success("鎴愬姛", string.Join(",", rs), rs.Count); + } + catch (Exception ex) + { + LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); + return ResponseMsg<string>.fail(ex.Message); + } + } + + /// <summary> + /// 璇诲彇Las鍧愭爣绯� + /// </summary> + [HttpPost] + public ResponseMsg<string> ReadLasCs([FromBody]XYZArgs args) + { + try + { + ResponseMsg<string> msg = checkArgs(args, true); + if (null != msg) return msg; + + string err = null; + List<int> rs = LasUtils.ReadLasCs(args, ref err); + if (null == rs || rs.Count == 0) + { + return ResponseMsg<string>.fail(null == err ? "澶辫触" : err); + } + + return ResponseMsg<string>.success("鎴愬姛", string.Join(",", rs), rs.Count); + } + catch (Exception ex) + { + LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); + return ResponseMsg<string>.fail(ex.Message); + } + } + + /// <summary> + /// Py杞崲LAS + /// </summary> + [HttpPost] + public ResponseMsg<string> ToLasByPy([FromBody]XYZArgs args) + { + try + { + ResponseMsg<string> msg = checkArgs(args); + if (null != msg) return msg; + + //if (args.srids.Count != args.ids.Count) return ResponseMsg<string>.fail("鍧愭爣绯籌D闆嗗悎涓庡厓鏁版嵁ID闆嗗悎闀垮害涓嶄竴鑷�"); + //if (args.zs.Count != args.ids.Count) return ResponseMsg<string>.fail("楂樺害鍋忕Щ閲忛泦鍚堜笌鍏冩暟鎹甀D闆嗗悎闀垮害涓嶄竴鑷�"); + + string err = null; + List<int> rs = PyLasUtils.Generate(args, ref err); + if (null == rs || rs.Count == 0) + { + return ResponseMsg<string>.fail(null == err ? "澶辫触" : err); + } + + return ResponseMsg<string>.success("鎴愬姛", string.Join(",", rs), rs.Count); + } + catch (Exception ex) + { + LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); + return ResponseMsg<string>.fail(ex.Message); + } + } + + /// <summary> + /// 鍒犻櫎鏂囦欢 + /// </summary> + [HttpPost] + public ResponseMsg<string> DeleteFiles([FromBody]XYZArgs args) + { + try + { + ResponseMsg<string> msg = checkArgs(args, true); + if (null != msg) return msg; + + string err = null; + List<int> rs = CommonUtils.DeleteFiles(args, ref err); + if (null == rs || rs.Count == 0) + { + return ResponseMsg<string>.fail(null == err ? "澶辫触" : err); + } + + return ResponseMsg<string>.success("鎴愬姛", string.Join(",", rs), rs.Count); + } + catch (Exception ex) + { + LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); + return ResponseMsg<string>.fail(ex.Message); + } + } + + /// <summary> + /// 鍒犻櫎浠诲姟 + /// </summary> + [HttpPost] + public ResponseMsg<string> DeleteTask([FromBody]XYZArgs args) + { + try + { + ResponseMsg<string> msg = checkArgs(args, true); + if (null != msg) return msg; + + string err = null; + List<int> rs = CommonUtils.DeleteTask(args, ref err); + if (null == rs || rs.Count == 0) + { + return ResponseMsg<string>.fail(null == err ? "澶辫触" : err); + } + + return ResponseMsg<string>.success("鎴愬姛", string.Join(",", rs), rs.Count); + } + catch (Exception ex) + { + LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); + return ResponseMsg<string>.fail(ex.Message); + } + + } + + [HttpGet] + public string GetRasterEPSG(int id) + { + SysMeta meta = XYZUtils.SelectMeta(id); + if (null == meta || string.IsNullOrEmpty(meta.path)) return null; + + string file = Path.Combine(Tools.GetSetting("uploadFolder"), meta.path); + if (!File.Exists(file)) return null; + + return Tools.GetEPSG(file); + } + + /// <summary> + /// 妫�鏌ュ弬鏁� + /// </summary> + private ResponseMsg<string> checkArgs(XYZArgs args, bool checkDir = false) + { + if (null == args || null == args.ids || args.ids.Count == 0) + { + return ResponseMsg<string>.fail("璇疯緭鍏ュ厓鏁版嵁ID"); + } + if (string.IsNullOrWhiteSpace(args.token)) + { + return ResponseMsg<string>.fail("娌℃湁浠ょ墝"); + } + if (!ExportUtil.VerifyToken(args.token)) + { + return ResponseMsg<string>.fail("浠ょ墝鏃犳晥"); + } + if (checkDir && string.IsNullOrWhiteSpace(args.dircode)) + { + return ResponseMsg<string>.fail("鐩綍浠g爜涓嶈兘涓虹┖"); + } + + return null; + } + + /// <summary> + /// 妫�鏌ユ渶澶ф渶灏忓�� + /// </summary> + private void checkMinMax(XYZArgs args, bool checkNoData = false) + { + 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; + } + + if (checkNoData) + { + if (args.noData < 0) args.noData = 0; + if (args.noData > 255) args.noData = 255; + } + } } } -- Gitblit v1.9.3