zoukankan      html  css  js  c++  java
  • [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

    通过对象构建

  • 相关阅读:
    gzip是一种数据格式,deflate是一种压缩算法
    js 实现图片上传 续
    iframe 元素会创建包含另外一个文档的内联框架(即行内框架)
    HTTPS简介----
    回归测试
    HTTP 返回码 400
    js 实现 一张图片的上传
    121. Best Time to Buy and Sell Stock
    119. Pascal's Triangle II
    118. Pascal's Triangle
  • 原文地址:https://www.cnblogs.com/yhlx125/p/3632960.html
Copyright © 2011-2022 走看看