GDAL/OGR的简介

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GDAL/OGR的简介相关的知识,希望对你有一定的参考价值。

参考技术A

OGR是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         }
View Code

通过对象构建

 

 

以上是关于GDAL/OGR的简介的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 OGR 库 (GDAL\OGR) 读取 GML 文件?

ogr ogr2ogr 矢量数据格式转换 ogrinfo 矢量数据图层信息操作 ogr gdal的一部分 gdal 命令行 库操作

使用GDAL的ogr2ogr工具,结合ArcGIS Desktop对Geojson数据编辑

在 Windows 上使用 QProcess 读取 GDAL /vsistdout/

如何判断 gdal 驱动已经注册

VS2022编译GDAL库报错: LINK : error LNK2001: 无法解析的外部符号 _OSRValidate _OGR_G_GetPointCount _OGRRegisterAll