beanflower 2018年07月17日
GDAL库 坐标转换问题
利用gdal库,读取修改shp文件中的图形,需要对Geometry进行坐标转换。

调用setpoint函数后,做是变化修改了。

但是,重新读取打开图形,坐标还是没有变化?需要如何操作?

public void ConvertCoor(string source)
{

DataSource sourceSource = Ogr.Open(source, 0);
OSGeo.OGR.Driver shpDriver = Ogr.GetDriverByName("ESRI Shapefile"); //MapInfo File、ESRI Shapefile
int layerCount = sourceSource.GetLayerCount();

for (int i = 0; i < layerCount; i++)
{
Layer layer = sourceSource.GetLayerByIndex(i);
int featureCount = layer.GetFeatureCount(0);

for (int j = 0; j < featureCount; j++)
{
Feature feature = layer.GetFeature(j);

if (feature != null)
{
try
{
//
Geometry geo = feature.GetGeometryRef();
int count = geo.GetPointCount();
for (int k = 0; k < count; k++) {
double x2 = 0, y2 = 0,b=0,l=0;
double x1 = geo.GetY(k);
double y1 = geo.GetX(k);
x2 = x1+2000;
y2 = y1+3000;
geo.SetPoint_2D(k, y2, x2);
x1 = geo.GetY(k);
y1 = geo.GetX(k);
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
continue;
}

layer.ResetReading();
layer.CommitTransaction();
}
}
layer.Dispose();
}


sourceSource.Dispose();
shpDriver.Dispose();
}
...全文
68 点赞 收藏 回复
写回复
回复

还没有回复,快来抢沙发~

发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告