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

文章讲述了如何在使用GDAL创建SHP文件时,解决由SpatialReference类创建的坐标系统PRJ文件在不同ARCGIS版本中识别问题,关键在于确保PRJ文件以ASCII编码保存。提供了一段代码示例,说明了在ARCGIS10.6中通过ASCII编码实现文件识别的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在用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中实测通过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值