年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

131 lines
5.2 KiB

4 months ago
using System;
using System.Collections.Generic;
using System.IO;
namespace Kingo.Mobile.Shape2KOTool
{
public class SpatialRefrenceStruct
{
public int WKID { get; set; }
public string Description { get; set; }
public string WKT { get; set; }
public double FalseX { get; set; }
public double FalseY { get; set; }
public double FalseZ { get; set; }
public double FalseM { get; set; }
public double XYUnits { get; set; }
public double ZUnits { get; set; }
public double MUnits { get; set; }
public double XYCluster_Tol { get; set; }
public double ZCluster_Tol { get; set; }
public double MCluster_Tol { get; set; }
public SpatialRefrenceStruct()
{
this.FalseY = -10002100.0;
this.FalseZ = 0.0;
this.FalseM = 0.0;
this.XYUnits = 9999.80408481684;
this.ZUnits = 1.0;
this.MUnits = 1.0;
this.XYCluster_Tol = 0.00100000202655792;
this.MCluster_Tol = 0.001;
this.ZCluster_Tol = 0.001;
}
static SpatialRefrenceStruct()
{
SpatialRefrenceStruct.data.Add(new SpatialRefrenceStruct
{
WKID = -1,
Description = "NingboCartesian",
WKT = "PROJCS[\"NingboCartesian\",GEOGCS[\"GCS_Beijing_1954\",DATUM[\"D_Beijing_1954\",SPHEROID[\"Krasovsky_1940\",6378245.0,298.3]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Orthographic\"],PARAMETER[\"False_Easting\",600000.0],PARAMETER[\"False_Northing\",3200000.0],PARAMETER[\"Longitude_Of_Center\",0.0],PARAMETER[\"Latitude_Of_Center\",121.5],UNIT[\"Meter\",1.0]]"
});
SpatialRefrenceStruct.data.Add(new SpatialRefrenceStruct
{
WKID = 4326,
Description = "GCS WGS 1984",
WKT = "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223563]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]]"
});
SpatialRefrenceStruct.data.Add(new SpatialRefrenceStruct
{
WKID = 4490,
Description = "GCS China Geodetic Coordinate System 2000",
WKT = "GEOGCS[\"GCS_China_Geodetic_Coordinate_System_2000\",DATUM[\"D_China_2000\",SPHEROID[\"CGCS2000\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]]"
});
for (int i = 0; i <= 20; i++)
{
SpatialRefrenceStruct.data.Add(new SpatialRefrenceStruct
{
WKID = 2370 + i,
Description = string.Format("Xian 1980 3 Degree GK CM {0}E", 75 + i * 3),
WKT = string.Format("PROJCS[\"Xian_1980_3_Degree_GK_CM_{0}E\",GEOGCS[\"GCS_Xian_1980\",DATUM[\"D_Xian_1980\",SPHEROID[\"Xian_1980\",6378140.0,298.257]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Gauss_Kruger\"],PARAMETER[\"False_Easting\",500000.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",{0}.0],PARAMETER[\"Scale_Factor\",1.0],PARAMETER[\"Latitude_Of_Origin\",0.0],UNIT[\"Meter\",1.0]]", 75 + i * 3),
FalseX = -5123200.0
});
}
for (int i = 0; i <= 20; i++)
{
SpatialRefrenceStruct.data.Add(new SpatialRefrenceStruct
{
WKID = 2349 + i,
Description = string.Format("Xian 1980 3 Degree GK Zone {0}", 25 + i),
WKT = string.Format("PROJCS[\"Xian_1980_3_Degree_GK_Zone_{0}\",GEOGCS[\"GCS_Xian_1980\",DATUM[\"D_Xian_1980\",SPHEROID[\"Xian_1980\",6378140.0,298.257]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Gauss_Kruger\"],PARAMETER[\"False_Easting\",{0}500000.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",{1}.0],PARAMETER[\"Scale_Factor\",1.0],PARAMETER[\"Latitude_Of_Origin\",0.0],UNIT[\"Meter\",1.0]]", 25 + i, 75 + i * 3),
FalseX = (double)((25 + i - 6) * 1000000) + 876800.0
});
}
//加载2000
var basedir = System.AppDomain.CurrentDomain.BaseDirectory;
string[] files = Directory.GetFiles(System.IO.Path.Combine(basedir,"CGCS2000"));
foreach (string path in files)
{
string text = File.ReadAllText(path);
string[] array2 = text.Split(new char[]
{
','
});
int wkid = int.Parse(array2[array2.Length - 1].Replace("]", ""));
SpatialRefrenceStruct.data.Add(new SpatialRefrenceStruct
{
WKID = wkid,
Description = Path.GetFileNameWithoutExtension(path),
WKT = text
});
}
}
public static List<SpatialRefrenceStruct> GetAllData()
{
return SpatialRefrenceStruct.data;
}
private static List<SpatialRefrenceStruct> data = new List<SpatialRefrenceStruct>();
}
}