C#用GDAL创建SHP文件,升成的PRJ文件在ARCGIS中不识别的问题

在用GDAL创建SHP文件时,用SpatialReference类创建的坐标系统,在升成时会有一个PRJ文件,但是该文件在用ARCGIS不会被识别,原因为ARCGIS版本不一样所识别的文件也不一样)采用另外一种方法,直接升成PRJ文件,该文件必须要按照ASCII码升成,否则ARCGIS不识别
思路,用坐标取带号,该方法只对带上带号的2000高期吕克坐标系有用。

int dh = Convert.ToInt16(zb[0].X.ToString().Substring(0, 2));
string wkt = "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone"+dh.ToString() +"\"," +"GEOGCS[\"China Geodetic Coordinate System 2000\"," +"DATUM[\"China_2000\"," +"SPHEROID[\"CGCS2000\",6378137.0,298.257222101]]," + "PRIMEM[\"Greenwich\",0.0]," +"UNIT[\"Degree\",0.0174532925199433]]," +"PROJECTION[\"Gauss_Kruger\"]," +"PARAMETER[\"False_Easting\","+dh.ToString()+"500000.0]," +"PARAMETER[\"False_Northing\",0.0]," +"PARAMETER[\"Central_Meridian\","+(dh*3).ToString("F1")+"]," +"PARAMETER[\"Scale_Factor\",1.0]," +"PARAMETER[\"Latitude_of_Origin\",0.0]," +"UNIT[\"Metre\",1.0]]";string prjPath = zdPath + @"\ZD.prj";using (StreamWriter write = new StreamWriter(prjPath, false, Encoding.ASCII)){write.WriteLine(wkt);}

最重要是升成PRJ该文件必须是ASCII码升成,否则ARCGIS不会识别,以上代码在ARCGIS10.6中实测通过。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部