C#用GDAL/OGR库读取与写shape投影信息[原创]

今天花了一点点时间看了一下C#中OGR读取与写shape中的投影信息的方式.
读写矢量与属性信息见上一篇
C#用GDAL/OGR库创建与写Shape文件,测试通过[原创]
具体过程为
//投影实验区
OSGeo.OSR.SpatialReference ss;
ss = orgLayer.GetSpatialRef();//orgLayer为OSGeo.OGR.layer类型实例
string ppss;
ss.ExportToWkt(out ppss);//将读取文件的shape投影信息输出到格式化字符串ppss
MessageBox.Show(ppss);
非常简单.
比如,输出的一个编码信息串为
GEOGCS["GCS_North_American_1927",DATUM["North_American_Datum_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]]
这个串就是OGR里面标准的wkt串

然后往新生成的shape里写投影信息的过程也比较简单.
string strwkt = "GEOGCS[\"GCS_North_American_1927\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke_1866\",6378206.4,294.9786982]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.0174532925199433]]";
注意字符串中双引号表示为\"
OSGeo.OSR.SpatialReference srs = new OSGeo.OSR.SpatialReference(strwkt);
//然后在创建Layer的函数中,第二个参数就是//OSGeo.OSR.SpatialReference
此时
poLayer = poDS.CreateLayer("layername1", srs, OSGeo.OGR.wkbGeometryType.wkbPoint, null);
posted on 2009-08-05 10:32  giswei  阅读(4135)  评论(1编辑  收藏  举报