用c#将shp文件保存为txt格式文件
时间: 2023-08-13 08:05:30 浏览: 70
您好!以下是使用C#将shp文件保存为txt格式文件的示例代码:
```csharp
using OSGeo.OGR;
public void SaveShpToTxt(string shpFilePath, string txtFilePath)
{
// 注册OGR驱动
Ogr.RegisterAll();
// 打开shp文件
DataSource ds = Ogr.Open(shpFilePath, 0);
Layer layer = ds.GetLayerByIndex(0);
// 创建txt文件
StreamWriter sw = new StreamWriter(txtFilePath);
// 逐个读取feature并保存到txt文件中
Feature feature = null;
while ((feature = layer.GetNextFeature()) != null)
{
Geometry geometry = feature.GetGeometryRef();
if (geometry.GetGeometryType() == wkbGeometryType.wkbPoint)
{
string x = geometry.GetX(0).ToString();
string y = geometry.GetY(0).ToString();
sw.WriteLine(x + "," + y);
}
}
// 关闭txt文件
sw.Close();
}
```
其中,`shpFilePath`是要转换的shp文件路径,`txtFilePath`是要保存的txt文件路径。上述代码只是示例,您可以根据自己需要修改代码,例如修改保存的要素类型等。
需要注意的是,在使用OGR库时需要引入`OSGeo.OGR`命名空间,并且需要将OGR的C++库文件复制到程序运行的目录中。
希望这能帮到您!