zoukankan      html  css  js  c++  java
  • GDAL create kml

    新增kml 点
     public void WriteKmlPiont()
          {
    
              string driverName = "KML"; //MapInfo File
    
              OSGeo.GDAL.Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");
              // 为了使属性表字段支持中文,请添加下面这句SHAPE_ENCODING
    
              //UTF-8 to ISO-8859-1.
              OSGeo.GDAL.Gdal.SetConfigOption("SHAPE_ENCODING", "");
              //注册
              Ogr.RegisterAll();
    
              OSGeo.OGR.Driver ogrDriver = Ogr.GetDriverByName(driverName);
    
              DataSource ogrDS = ogrDriver.CreateDataSource("C:\test.kml", null);
    
             // string fileName = DateTime.Now.ToString("yyyyMMddHHmmss");
    
              Layer ogrlayer = ogrDS.CreateLayer("kml", null, wkbGeometryType.wkbPoint, null);
    
              FieldDefn fdefn = new FieldDefn("Name", FieldType.OFTString);
              fdefn.SetWidth(32);
              ogrlayer.CreateField(fdefn,1);
    
              fdefn = new FieldDefn("IntField", FieldType.OFTInteger);
              ogrlayer.CreateField(fdefn, 1);
    
              fdefn = new FieldDefn("DbleField", FieldType.OFTReal);
              ogrlayer.CreateField(fdefn, 1);
    
              fdefn = new FieldDefn("DateField", FieldType.OFTDate);
              ogrlayer.CreateField(fdefn, 1);
    
              Feature feature = new Feature(ogrlayer.GetLayerDefn());
              feature.SetField("Name", "新增kml");
              feature.SetField("IntField", (int)123);
              feature.SetField("DbleField", (double)12.345);
              feature.SetField("DateField", 2007, 3, 15, 18, 24, 30, 0);
    
    
              Geometry geom = Geometry.CreateFromWkt("POINT(115.91466833333 28.668223333)");
              feature.SetGeometry(geom);
              ogrlayer.CreateFeature(feature);
    
              ogrlayer.Dispose();
              ogrDS.Dispose();
          }
    View Code
    新增kml 线
       public void WriteKmlLine()
          {
    
              string driverName = "KML"; //MapInfo File
    
              OSGeo.GDAL.Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");
              // 为了使属性表字段支持中文,请添加下面这句SHAPE_ENCODING
    
              //UTF-8 to ISO-8859-1.
              OSGeo.GDAL.Gdal.SetConfigOption("SHAPE_ENCODING", "");
              //注册
              Ogr.RegisterAll();
    
              OSGeo.OGR.Driver ogrDriver = Ogr.GetDriverByName(driverName);
    
              DataSource ogrDS = ogrDriver.CreateDataSource("C:\wkbLineString.kml", null);
    
              // string fileName = DateTime.Now.ToString("yyyyMMddHHmmss");
    
              Layer ogrlayer = ogrDS.CreateLayer("kml", null, wkbGeometryType.wkbLineString, null);
    
              FieldDefn fdefn = new FieldDefn("Name", FieldType.OFTString);
              fdefn.SetWidth(32);
              ogrlayer.CreateField(fdefn, 1);
    
              fdefn = new FieldDefn("IntField", FieldType.OFTInteger);
              ogrlayer.CreateField(fdefn, 1);
    
              fdefn = new FieldDefn("DbleField", FieldType.OFTReal);
              ogrlayer.CreateField(fdefn, 1);
    
              fdefn = new FieldDefn("DateField", FieldType.OFTDate);
              ogrlayer.CreateField(fdefn, 1);
    
              Feature feature = new Feature(ogrlayer.GetLayerDefn());
              feature.SetField("Name", "新增kml");
              feature.SetField("IntField", (int)123);
              feature.SetField("DbleField", (double)12.345);
              feature.SetField("DateField", 2007, 3, 15, 18, 24, 30, 0);
    
    
              Geometry geom = new Geometry(wkbGeometryType.wkbLineString); //Geometry.CreateFromWkt("LINESTRING(115.91466833333 28.668223333)");
    
              //需要增加两个点,两点成一线,开始测试的时候就经常报错。、
              geom.AddPoint_2D(115.91466833333, 28.668223333);
    
              geom.AddPoint_2D(115.92466833333, 28.668223333);
    
              feature.SetGeometry(geom);
              ogrlayer.CreateFeature(feature);
    
              ogrlayer.Dispose();
              ogrDS.Dispose();
          }
    View Code
  • 相关阅读:
    C++中逻辑操作符的重载分析
    不要62
    P1052 过河
    P1029 最大公约数和最小公倍数问题
    P1345 [USACO5.4]奶牛的电信Telecowmunication
    Dining
    Dinic
    [Scoi2015]小凸玩矩阵
    12.16
    bzoj 3529
  • 原文地址:https://www.cnblogs.com/chenxiao/p/3875880.html
Copyright © 2011-2022 走看看