#include <drogon/drogon.h>
#include <gdal_priv.h>
#include <string>
#include <iostream>
#include <fstream>
#include <cmath>
#include <vector>
#include <map>
#include <ogr_geometry.h> //Geometry对象
#include <ogr_spatialref.h> //Spatial Reference
#include <ogr_feature.h> //Feature Class Definition
#include <ogrsf_frmts.h> //Layer\DataSource\Drivers
#include <ogr_api.h>
using namespace std;
int main(){CPLSetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");CPLSetConfigOption("SHAPE_ENCODING", "UTF-8");GDALAllRegister();GDALDriver* shpDriver = GetGDALDriverManager()->GetDriverByName("ESRI Shapefile");if (shpDriver == NULL) {printf("%s\n", "ESRI Shapefile驱动创建失败!");return 0;}GDALDataset* gdalDataSet = shpDriver->Create("..\\shp\\TestPolygon.shp", 0, 0, 0, GDT_Unknown, NULL);OGRSpatialReference osr;if (osr.importFromEPSG(4326) != OGRERR_NONE) {printf("%s\n", "坐标系创建失败!");return -1;}char** papszOptions = NULL;papszOptions = CSLSetNameValue(papszOptions, "ENCODING", "UTF-8");OGRLayer* regLayer = gdalDataSet->CreateLayer("regionLyr", &osr, wkbPolygon, papszOptions);OGRFieldDefn regIdField("REG_ID", OFTInteger);regIdField.SetWidth(8);regLayer->CreateField(&regIdField);OGRFieldDefn regNameField("REG_NAME", OFTString);regNameField.SetWidth(8);regLayer->CreateField(&regNameField);OGRFeature* ogrFeature = OGRFeature::CreateFeature(regLayer->GetLayerDefn());ogrFeature->SetField("REG_ID", 10001);ogrFeature->SetField("REG_NAME", "军事禁区");OGRPolygon ogrPolygon;OGRLinearRing ogrLRout;ogrLRout.addPoint(0.0, 0.0);ogrLRout.addPoint(8.0, 0.0);ogrLRout.addPoint(8.0, 8.0);ogrLRout.addPoint(0.0, 8.0);ogrLRout.addPoint(0.0, 0.0);ogrPolygon.addRing(&ogrLRout);OGRLinearRing ogrLRinI;ogrLRinI.addPoint(1.0, 1.0);ogrLRinI.addPoint(4.0, 1.0);ogrLRinI.addPoint(3.0, 3.0);ogrLRinI.addPoint(1.0, 1.0);ogrPolygon.addRing(&ogrLRinI);OGRLinearRing ogrLRinII;ogrLRinII.addPoint(6.0, 3.0);ogrLRinII.addPoint(5.0, 3.0);ogrLRinII.addPoint(5.0, 6.0);ogrLRinII.addPoint(6.0, 3.0);ogrPolygon.addRing(&ogrLRinII);ogrFeature->SetGeometry(&ogrPolygon);regLayer->CreateFeature(ogrFeature);OGRFeature::DestroyFeature(ogrFeature);GDALClose(gdalDataSet);return 0;
}

C++ GDAL/OGR 库创建多边形类型的图层相关推荐

  1. java gdal postgresql_使用GDAL/OGR操作Postgresql数据库

     GDAL(Geospatial Data AbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库.它利用抽象数据模型来表达所支持的各种文件格式.它还有一系列命 ...

  2. 使用GDAL/OGR操作Postgresql数据库

     GDAL(Geospatial Data AbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库.它利用抽象数据模型来表达所支持的各种文件格式.它还有一系列命 ...

  3. C++ GDAL/OGR 图层求交集Intersection

    上两期文章,说明了如何创建点类型的图层和多边形类型的图层,创建好这两个图层之后,将两个图层求交得到TestResult.shp,此shp文件包含了求交后的结果. int TestIntersectio ...

  4. 使用 Boost.Lambda 库创建并存储在 Boost.Function 对象中的函子中使用 Boost.Units 的数量、单位和绝对类型

    使用 Boost.Lambda 库创建并存储在 Boost.Function 对象中的函子中使用 Boost.Units 的数量.单位和绝对类型 实现功能 C++实现代码 实现功能 使用 Boost. ...

  5. python 读取地震道头数据_【Python】OGR库(1):读取矢量数据

    OGR库是一个非常流行的处理地理空间矢量数据的开源库.它可以读取丰富的数据格式,允许用户进行几何处理.属性表操作.数据分析,是个非常强大的开源GIS库.目前OGR已集成在GDAL库中,可以说是GIS的 ...

  6. C#环境下GDAL / OGR环境配置与入门

    C#环境下GDAL.OGR环境配置与入门 0.概述 1.环境配置 2.类库介绍 3.代码实践 4. 总结 0.概述 由于需要进行一些Shapefile文件的读取和管理,但是ArcGIS的二次开发工具又 ...

  7. python ogr_Python+OGR库学习(三):将含有字段值的TXT文件写入shpfile

    代码任务 已知有一个TXT文件,每行格式:country_name:X1 Y1,X2 Y2,-Xn,Yn,其中,Xn,Yn指折点坐标,把它导出为shp文件,TXT如下: 代码思路 1.导入相关库包,切 ...

  8. GDAL+OGR学习

    GDAL+OGR学习 每次写代码用Arcpy就得切回python2,很麻烦,故来学习一下gdal+ogr. gdal库安装 直接cmd写pip intsall gdal会报错 打开该链接gdal库下载 ...

  9. [Python] GDAL/OGR操作矢量数据(shp、GeoJSON)

    GDAL项目旨于地理数据抽象模型对地理数据文件进行读写管理:而其项目下有两大类模块:GDAL和OGR OGR提供操作矢量数据的API,GDAL模块提供栅格数据的API [相关链接] 1.GDAL/OG ...

最新文章

  1. 继承ViewGroup研究(汇总) 一、二、三
  2. vs2015上使用github进行版本控制
  3. 机器物联网的四大价值流
  4. 软件设计原则(五)接口隔离原则 -Interface Segregation Principle
  5. Spring Ioc (Inversion of Control)
  6. 【C#程序设计】教学讲义——第二章:简单C#程序设计
  7. JAVA数据库连接池实现
  8. Linux常用命令拾遗
  9. 存储端显示主机链路降级_【计算机网络】你真的理解数据链路层吗?
  10. 【转载】随机游走及马尔科夫链(本体映射相关)
  11. 超棒的一遍综述性博客
  12. Python Tricks(十六)—— list转换为str
  13. sql server 日期时间操作
  14. 新兴IT企业特斯拉(四)——Model 3
  15. swf导出html代码,将SWF轻松导出HTML5
  16. ORACLE数据恢复到指定时间
  17. zynq-7000系列基于zynq-7015的vivado初步设计之linux下控制PL扩展的光以太网(1000BASE-X)
  18. 【学习资源】光学、物理类、电子学实验合集
  19. Python计算身体质量指数BMI
  20. 微信小程序中使用emoji表情相关说明

热门文章

  1. Android版火狐无法同步,Firefox 同步 故障解决
  2. 计算机组成原理-第一章(1)-概述
  3. oracle判断字段为空时选用别的字段_oracle中使用sql查询时字段为空则赋值默认
  4. 微信小程序HTTPS证书部署案例
  5. 冲量在线正式加入中关村可信计算产业联盟,共同推动可信计算产业深度发展
  6. 2022-07-11 BUD元宇宙面试记录及复盘(还是要多复习下语言的细节)
  7. iOS 开发的资源整理
  8. 如何能成为一个自由职业者?先做好这几方面
  9. 统计员工业绩app_统计员工业绩app
  10. MSCKF(一)——四元数的两种表示