• [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 驱动不可用!
    ", strVectorFile);
    12                 return;
    13             }
    14             // 创建数据源
    15             DataSource oDS = oDriver.CreateDataSource(strVectorFile, null);
    16             if (oDS == null)
    17             {
    18                 Console.WriteLine("创建矢量文件【%s】失败!
    ", strVectorFile);
    19                 return;
    20             }
    21 
    22             // 创建图层,创建一个多边形图层,这里没有指定空间参考,如果需要的话,需要在这里进行指定
    23             Layer oLayer = oDS.CreateLayer("TestPolygon", null, wkbGeometryType.wkbPolygon, null);
    24             if (oLayer == null)
    25             {
    26                 Console.WriteLine("图层创建失败!
    ");
    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("
    数据集创建完成!
    ");
    65         }
    View Code

    通过对象构建

  • 相关阅读:
    Python print "hello world" SyntaxError: invalid syntax
    Parencodings(模拟)
    Do the Untwist(模拟)
    Jugs(回溯法)
    Anagrams by Stack(深度优先搜索)
    Fire Net(深度优先搜索)
    Integer Numbers
    Codeforces Beta Round #34 (Div. 2) E. Collisions
    什么是Qt Widget?
    codeblocks快捷键(转)
  • 原文地址:https://www.cnblogs.com/yhlx125/p/3632960.html
Copyright © 2020-2023  润新知