概述
GDAL Shape转Geojson 文件释放方法
- 问题描述
- 问题代码
- 成功代码
问题描述
在项目中遇到一个shape文件转json的需求,于是选用了GDal方案,使用方法网上一大堆,但在执行转换过后生成的文本文件一直释放不了,每次生成的结果文件删除不掉就很恶心,于是各种调试终于找到解决方案
问题代码
生成的文件删除不掉,执行CopyDataSource重名的话, 会报错
public void convertShapefile2Geojson(string shpPath, string geojsonPath)
{
using (DataSource ds = Ogr.Open(shpPath, 0))
{
if (ds == null)
{
return;
}
using (Driver dv = Ogr.GetDriverByName("GeoJSON"))
{
if (dv == null)
{
return;
}
try
{
if (File.Exists(geojsonPath))
{
dv.DeleteDataSource(geojsonPath);
}
dv.CopyDataSource(ds, geojsonPath, null);
dv.Dispose();
}
catch (Exception exx)
{
}
}
ds.Dispose();
}
}
成功代码
加上一句 Gdal.GDALDestroyDriverManager(); 即可
public void convertShapefile2Geojson(string shpPath, string geojsonPath)
{
using (DataSource ds = Ogr.Open(shpPath, 0))
{
if (ds == null)
{
return;
}
using (Driver dv = Ogr.GetDriverByName("GeoJSON"))
{
if (dv == null)
{
return;
}
try
{
if (File.Exists(geojsonPath))
{
dv.DeleteDataSource(geojsonPath);
}
dv.CopyDataSource(ds, geojsonPath, null);
dv.Deregister();
dv.Dispose();
}
catch (Exception exx)
{
}
}
ds.Dispose();
Gdal.GDALDestroyDriverManager();
}
}
最后
以上就是悲凉蜗牛为你收集整理的GDAL Shape转Geojson 文件释放方法问题描述的全部内容,希望文章能够帮你解决GDAL Shape转Geojson 文件释放方法问题描述所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复