GDAL/OGR的简介
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GDAL/OGR的简介相关的知识,希望对你有一定的参考价值。
参考技术AOGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。
有很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI的ArgGIS 9.2,Google Earth和跨平台的GRASS GIS系统。
[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 }
通过对象构建
以上是关于GDAL/OGR的简介的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 OGR 库 (GDAL\OGR) 读取 GML 文件?
ogr ogr2ogr 矢量数据格式转换 ogrinfo 矢量数据图层信息操作 ogr gdal的一部分 gdal 命令行 库操作
使用GDAL的ogr2ogr工具,结合ArcGIS Desktop对Geojson数据编辑
在 Windows 上使用 QProcess 读取 GDAL /vsistdout/
VS2022编译GDAL库报错: LINK : error LNK2001: 无法解析的外部符号 _OSRValidate _OGR_G_GetPointCount _OGRRegisterAll