using ExportMap.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ExportMap.cs
{
public class TerrainUtils
{
private static int terrainMaxLevel = 0;
///
/// 地形最大级别
///
public static int TERRAIN_MAX_LEVEL
{
get
{
if (0 == terrainMaxLevel)
{
string str = Tools.GetSetting("terrainMaxLevel");
if (!int.TryParse(str, out terrainMaxLevel))
{
terrainMaxLevel = 14;
}
}
return terrainMaxLevel;
}
}
///
/// 重投影
///
public static void Reproject(string sourceFile, string targetFile, string sourceSrs, string targetSrs)
{
string gdalPath = Tools.GetSetting("gdalPath");
string cmd = string.Format("{0}\\gdalwarp.exe -s_srs {1} -t_srs {2} -r near -of GTiff {3} {4}", gdalPath, sourceSrs, targetSrs, sourceFile, targetFile);
Tools.ExecCmd(new List { cmd });
}
///
/// 指定投影
///
public static void Project(string sourceFile, string targetSrs)
{
List list = new List();
list.Add("cd \"C:\\Program Files\\QGIS 3.16\\apps\\Python37\"");
//list.Add("set GDAL_DATA=\"C:\\Program Files\\QGIS 3.16\\share\\gdal\"");
//list.Add("set PROJ_LIB=\"C:\\Program Files\\QGIS 3.16\\share\\proj\"");
list.Add("\"C:\\Program Files\\QGIS 3.16\\bin\\qgis_process-qgis-ltr.bat\"");
string cmd = string.Format("python \"C:\\Program Files\\QGIS 3.16\\apps\\Python37\\Scripts\\gdal_edit.py\" -a_srs {0} {1}", targetSrs, sourceFile);
list.Add(cmd);
string rs = "";
string err = Tools.ExecCmd(new List { cmd }, ref rs);
}
}
}