[GDAL]写入shp

C#通过Wkt码构建shp,记录写不进去!

 1  static void WriteVectorFile()
 2         {
 3             string strVectorFile = "E:\\";
 4             // 注册所有的驱动
 5             Ogr.RegisterAll();
 6             //创建数据,这里以创建ESRI的shp文件为例
 7             string strDriverName = "ESRI Shapefile";
 8             Driver oDriver = Ogr.GetDriverByName(strDriverName);
 9             if (oDriver == null)
10             {
11                 Console.WriteLine("%s 驱动不可用!\n", strVectorFile);
12                 return;
13             }
14             // 创建数据源
15             DataSource oDS = oDriver.CreateDataSource(strVectorFile, null);
16             if (oDS == null)
17             {
18                 Console.WriteLine("创建矢量文件【%s】失败!\n", strVectorFile);
19                 return;
20             }
21
22             // 创建图层,创建一个多边形图层,这里没有指定空间参考,如果需要的话,需要在这里进行指定
23             Layer oLayer = oDS.CreateLayer("TestPolygon", null, wkbGeometryType.wkbPolygon, null);
24             if (oLayer == null)
25             {
26                 Console.WriteLine("图层创建失败!\n");
27                 return;
28             }
29
30             // 下面创建属性表
31             // 先创建一个叫FieldID的整型属性
32             FieldDefn oFieldID = new FieldDefn("FieldID", FieldType.OFTInteger);
33             oLayer.CreateField(oFieldID, 1);
34
35             // 再创建一个叫FeatureName的字符型属性,字符长度为50
36             FieldDefn oFieldName = new FieldDefn("FieldName", FieldType.OFTString);
37             oFieldName.SetWidth(100);
38             oLayer.CreateField(oFieldName, 1);
39             FeatureDefn oDefn = oLayer.GetLayerDefn();
40
41             // 创建三角形要素
42             Feature oFeatureTriangle = new Feature(oDefn);
43             oFeatureTriangle.SetField(0, 0);
44             oFeatureTriangle.SetField(1, "三角形");
45             Geometry geomTriangle = Geometry.CreateFromWkt("POLYGON ((0 0,20 0,10 15,0 0))");
46             oFeatureTriangle.SetGeometry(geomTriangle);
47             oLayer.CreateFeature(oFeatureTriangle);
48
49             // 创建矩形要素
50             Feature oFeatureRectangle = new Feature(oDefn);
51             oFeatureRectangle.SetField(0, 1);
52             oFeatureRectangle.SetField(1, "矩形");
53             Geometry geomRectangle = Geometry.CreateFromWkt("POLYGON ((30 0,60 0,60 30,30 30,30 0))");
54             oFeatureRectangle.SetGeometry(geomRectangle);
55             oLayer.CreateFeature(oFeatureRectangle);
56
57             // 创建五角形要素
58             Feature oFeaturePentagon = new Feature(oDefn);
59             oFeaturePentagon.SetField(0, 2);
60             oFeaturePentagon.SetField(1, "五角形");
61             Geometry geomPentagon = Geometry.CreateFromWkt("POLYGON ((70 0,85 0,90 15,80 30,65 15,70 0))");
62             oFeaturePentagon.SetGeometry(geomPentagon);
63             oLayer.CreateFeature(oFeaturePentagon);
64             Console.WriteLine("\n数据集创建完成!\n");
65         }

通过对象构建

计划将这一套结构改成C#的。

时间: 2024-10-14 12:25:08

[GDAL]写入shp的相关文章

C#中GDAL读写shp图层

采用GDAL17的C#库进行shp图层属性表读取和修改操作,C#DLL库解压后包含文件如下: 添加引用主要是带csharp的gdal.ogr.osr三个DLL,程序代码如下: using OSGeo.OGR; using OSGeo.OSR; using OSGeo.GDAL; 1.    读取shp图层操作 public void Reforming(string shpFilePath) { Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8",

结合C++和GDAL实现shapefile(shp)文件的创建和写入

工具:vs2012+GDAL 2.0 包含头文件: #include "ogrsf_frmts.h" int main() { const char *pszDriverName = "ESRI Shapefile"; GDALDriver *poDriver; GDALAllRegister(); poDriver = GetGDALDriverManager()->GetDriverByName(pszDriverName ); if( poDriver

GDAl C++ 创建Shp

用于GDAL,C++开发环境测试. #include <iostream> #include "gdal_priv.h" #include "ogrsf_frmts.h" #include "ogr_geometry.h" #pragma comment (lib,"C:\\warmerda\\bld\\lib\\gdal_i.lib") using namespace std; void CreateShapeF

结合C++和GDAL实现shapefile(shp)文件的读取

工具:vs2012+GDAL 2.0 数据:中国省界SHP文件bou2_4p.shp 包含头文件: #include "ogrsf_frmts.h" 代码: int main(){ GDALAllRegister(); GDALDataset *poDS; CPLSetConfigOption("SHAPE_ENCODING",""); //解决中文乱码问题 //读取shp文件 poDS = (GDALDataset*) GDALOpenEx(&

部分GDAL工具功能简介

主要转自http://blog.csdn.net/liminlu0314?viewmode=contents 部分GDAL工具功能简介 gdalinfo.exe 显示GDAL支持的各种栅格文件的信息. gdal_translate.exe 在不同的格式间进行转换.同时,潜在的执行了一些切割.重采样和使像素比例变化的任务. gdalwarp.exe 投影转换和投影绑定.同时也可以进行图像镶嵌.这个程序可以重新投影所支持的投影,而且如果图像("raw" with)控制信息也可以把GCPs

GDAL python教程(1)——用OGR读写矢量数据

本教程的讲义和源码都是取自Utah State University的openGIS课程 相关资料,包括讲义.源码.数据样例,请从此处下载http://www.gis.usu.edu/~chrisg/python/ 本人只是做点翻译,写写学习体会而已,版权属于原作者. 欢迎转载,不过别忘了上面这段话. ================================================== 为什么用open source? 优点 免费,适合个人和小公司 强大的开发工具,找bug更容易

GDAL读写矢量文件——Python

在Python中使用OGR时,先要导入OGR库,如果需要对中文的支持,还需要导入GDAL库,具体代码如下.Python创建的shp结果如图1所示. 图1 Python创建矢量结果 1 #-*- coding: cp936 -*- 2 try: 3 from osgeo import gdal 4 from osgeo import ogr 5 exceptImportError: 6 import gdal 7 import ogr 1.读取矢量 1 #-*- coding: cp936 -*-

在windows中使用gdal解决中文乱码

当从本地读取shp或写入本地shp时,发现属性表中的中文会出现乱码的情况,通过查询发现 ogr.RegisterAll(); gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES"); gdal.SetConfigOption("SHAPE_ENCODING", "GB2312"); 并不能解决在windows环境中的乱码问题,GB2312不加也同样不行,其只能解决linux环境

linux下gdal的搭建

[源码编译] 前期准备: 确认电脑上安装好g++等开发环境,否则执行 sudo apt-get install build-essential 2.  确认电脑上已经安装好svn以便下载最新的源代码,否则执行 sudo apt-get install subversion 3.  确保proj4的安装 $ curl -O http://download.osgeo.org/proj/proj-4.8.0.tar.gz $ tar xvfz proj-4.8.0.tar.gz $ cd proj-