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 | 384 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 317 insertions(+), 67 deletions(-) diff --git a/ExportMap/Controllers/ConvertController.cs b/ExportMap/Controllers/ConvertController.cs index c0040dc..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,119 +13,367 @@ { 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<int> ToTileset([FromBody]XYZArgs args) + public ResponseMsg<string> ToTileset([FromBody]XYZArgs args) { try { - if (null == args || null == args.ids || args.ids.Count == 0) + ResponseMsg<string> msg = checkArgs(args); + if (null != msg) return msg; + + List<int> rs = ConvertUtils.Convert(args); + if (null == rs || rs.Count == 0) { - return ResponseMsg<int>.fail("璇疯緭鍏ュ厓鏁版嵁ID"); - } - if (string.IsNullOrWhiteSpace(args.token)) - { - return ResponseMsg<int>.fail("娌℃湁浠ょ墝"); - } - if (!ExportUtil.VerifyToken(args.token)) - { - return ResponseMsg<int>.fail("浠ょ墝鏃犳晥"); + return ResponseMsg<string>.fail("澶辫触"); } - int count = ConvertUtils.Convert(args.ids); - if (0 == count) - { - return ResponseMsg<int>.fail("澶辫触"); - } - - return ResponseMsg<int>.success("鎴愬姛", count); + return ResponseMsg<string>.success("鎴愬姛", string.Join(",", rs), rs.Count); } catch (Exception ex) { - LogOut.Error(ex.StackTrace); - return ResponseMsg<int>.fail(ex.Message); + LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); + return ResponseMsg<string>.fail(ex.Message); } } /// <summary> - /// 杞崲涓虹摝鐗� + /// 杞崲鐡︾墖 /// </summary> [HttpPost] - public ResponseMsg<int> ToTiles([FromBody]XYZArgs args) + public ResponseMsg<string> ToTiles([FromBody]XYZArgs args) { try { - if (null == args || null == args.ids || args.ids.Count == 0) - { - return ResponseMsg<int>.fail("璇疯緭鍏ュ厓鏁版嵁ID"); - } - if (string.IsNullOrWhiteSpace(args.token)) - { - return ResponseMsg<int>.fail("娌℃湁浠ょ墝"); - } - if (!ExportUtil.VerifyToken(args.token)) - { - return ResponseMsg<int>.fail("浠ょ墝鏃犳晥"); - } - if (args.min < 0 || args.max > 20 || string.IsNullOrWhiteSpace(args.dircode)) - { - return ResponseMsg<int>.fail("杈撳叆鐨勫弬鏁版湁璇�"); - } + ResponseMsg<string> msg = checkArgs(args, true); + if (null != msg) return msg; + + checkMinMax(args, true); string err = null; - int count = XYZUtils.Generate(args, ref err); - if (0 == count) + List<int> rs = XYZUtils.Generate(args, ref err); + if (null == rs || rs.Count == 0) { - return ResponseMsg<int>.fail(null == err ? "澶辫触" : err); + return ResponseMsg<string>.fail(null == err ? "澶辫触" : err); } - return ResponseMsg<int>.success("鎴愬姛", count); + return ResponseMsg<string>.success("鎴愬姛", string.Join(",", rs), rs.Count); } catch (Exception ex) { - LogOut.Error(ex.StackTrace); - return ResponseMsg<int>.fail(ex.Message); + LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); + return ResponseMsg<string>.fail(ex.Message); } } /// <summary> - /// 杞崲涓虹摝鐗� + /// 杞崲鐡︾墖 /// </summary> [HttpPost] - public ResponseMsg<int> ToSG([FromBody]XYZArgs args) + public ResponseMsg<string> ToSG([FromBody]XYZArgs args) { try { - if (null == args || null == args.ids || args.ids.Count == 0) - { - return ResponseMsg<int>.fail("璇疯緭鍏ュ厓鏁版嵁ID"); - } - if (string.IsNullOrWhiteSpace(args.token)) - { - return ResponseMsg<int>.fail("娌℃湁浠ょ墝"); - } - if (!ExportUtil.VerifyToken(args.token)) - { - return ResponseMsg<int>.fail("浠ょ墝鏃犳晥"); - } + ResponseMsg<string> msg = checkArgs(args); + if (null != msg) return msg; + string err = null; SGUtils utils = new SGUtils(); - - string err = null; - int count = utils.Release(args, ref err); - if (0 == count) + List<int> rs = utils.Release(args, ref err); + if (null == rs || rs.Count == 0) { - return ResponseMsg<int>.fail(null == err ? "澶辫触" : err); + return ResponseMsg<string>.fail(null == err ? "澶辫触" : err); } - return ResponseMsg<int>.success("鎴愬姛", count); + return ResponseMsg<string>.success("鎴愬姛", string.Join(",", rs), rs.Count); } catch (Exception ex) { - LogOut.Error(ex.StackTrace); - return ResponseMsg<int>.fail(ex.Message); + LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); + 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