一、读shapefile

1、首先,用Arcgis创建所要读的shp文件。打开ArcCatalog,右键NEW->Shapefile,名称Name:point ,要素类型(Feature Type):Point。点击Edit,选择投影类型。

2、打开ArcMap. 单击工具栏里的Add data按钮,打开刚才创建的point.shp文件。

3、添加5个点要素,并添加字段(添加字段要在非编辑模式下,修改字段的值要在编辑模式下,记得退出编辑时要保存),如图所示:

编辑如下C++/GDAL代码:

#include "ogrsf_frmts.h"int main(){OGRRegisterAll();OGRDataSource *poDS;poDS = OGRSFDriverRegistrar::Open( "G:\\LJF\\point.shp", FALSE );//shape文件存放的路径(point.shp即为自己创建的文件)if( poDS == NULL ){printf( "Open failed.\n%s" );exit( 1 );}OGRLayer  *poLayer;poLayer = poDS->GetLayerByName( "point" );OGRFeature *poFeature;poLayer->ResetReading();while( (poFeature = poLayer->GetNextFeature()) != NULL )//获得要素,本实例指的是五个点,所以会循环5次{OGRFeatureDefn *poFDefn = poLayer->GetLayerDefn();int iField;int i=poFDefn->GetFieldCount(); //获得字段的数目,本实例返回5,不包括前两个字段(FID,Shape),这两个字段在arcgis里也不能被修改;for( iField = 0; iField < poFDefn->GetFieldCount(); iField++ ){OGRFieldDefn *poFieldDefn = poFDefn->GetFieldDefn( iField );//根据字段值得类型,选择对应的输出if( poFieldDefn->GetType() == OFTInteger )printf( "%d,", poFeature->GetFieldAsInteger( iField ) );else if( poFieldDefn->GetType() == OFTReal )printf( "%.3f,", poFeature->GetFieldAsDouble(iField) );else if( poFieldDefn->GetType() == OFTString )printf( "%s,", poFeature->GetFieldAsString(iField) );elseprintf( "%s,", poFeature->GetFieldAsString(iField) );}OGRGeometry *poGeometry;poGeometry = poFeature->GetGeometryRef();if( poGeometry != NULL && wkbFlatten(poGeometry->getGeometryType()) == wkbPoint ){OGRPoint *poPoint = (OGRPoint *) poGeometry;printf( "%.3f,%3.f\n", poPoint->getX(), poPoint->getY() );}else{printf( "no point geometry\n" );}       OGRFeature::DestroyFeature( poFeature );}OGRDataSource::DestroyDataSource( poDS );system("pause");return 0;
}

运行结果如下图:

用GDAL/OGR去读shapefile相关推荐

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

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

  2. Java环境下GDAL / OGR环境配置与入门

    Java环境下GDAL / OGR环境配置与入门 0.概述 1.环境配置 1.1 开发环境下载 1.2 环境变量配置 1.3java工程配置 1.3.1新建Java工程 1.3.2添加GDAL的jar ...

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

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

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

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

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

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

  6. 如何使用GDAL/OGR打开矢量并输出每个面外界矩形范围内的point数据

    如何使用GDAL/OGR打开矢量并输出图层数据范围和每个ploygon要素范围 0.构想 1.arcmap查看数据属性信息 2.输出每个数据的extent外接矩形范围 3.按外界矩形范围生成point ...

  7. gdal java shp_【GDAL/OGR】利用GDAL/OGR读取shp文件并转换为json文件(Java版)

    前言: 对于GIS开发者来说,GDAL/OGR是最熟悉不过的开源GIS库了,GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间 ...

  8. php为什么都不想去二次开发,php学习误区:不要盲目的去读程序

    最近感到很郁闷,细数了一下自己读过的程序,真的是多之又多,比如比较流行的有:织梦系统(dedecms) php168phpcms ,论坛类的 discuz phpwind还有现在用的wordpress ...

  9. GDAL/OGR 1.9.0获取shp文件中中文字段值和属性值乱码文件解决

    GDAL/OGR 1.9.0又一个新的版本发布,但是又发现了一个对中文支持的问题,在之前的1.8.1版本开始,GDAL开始逐渐加入了对宽字节的支持,或者说是对各种编码的支持,GDAL在默认处理中,将所 ...

最新文章

  1. SAP VC销售订单中可配置物料的使用
  2. java添加信任_ssl-在Java中使用自定义信任库以及默认的on
  3. SpringBoot项目优化和Jvm调优(楼主亲测,真实有效)
  4. 为何高并发系统中都要使用消息队列
  5. python:继承日志模块生成自定义日志
  6. 【线段树】开关(luogu 3870)
  7. slf4j绑定器_用于ADFLogger的SLF4J绑定–缺少的部分
  8. Java EE6 CDI,命名组件和限定符
  9. 人工智能时代来临,还需要那么多人吗?
  10. 星外主机销售系统源码_业务员大客户销售订货订单管理系统源码开发外包解析...
  11. amap vueamap 与_vue 使用高德地图vue-amap组件过程解析
  12. 3.9 神经网络的梯度下降法
  13. python 数据结构包括三方面_python数据结构
  14. PIC18单片机移植FreeModbus
  15. 线性回归最小二乘法公式推导
  16. leaflet地图原理_Web地图呈现原理
  17. 怎样解除网络宽带限制
  18. 关于二代测序中duplication产生和占比问题的探讨
  19. 【一文弄懂】优先经验回放(PER)论文-算法-代码
  20. 【LCT】[COI2009] OTOCI

热门文章

  1. java广度优先爬虫示例,【爬虫】广度优先遍历抓取数据概述
  2. php mysql 常用语句_PHP mysql基本语句指令
  3. java编译程序的基本命令是什么,【填空题】Java中编译java 程序的命令是 1 ,执行java程序的命令是 java 。...
  4. 计算机专业英语主要句型及翻译技巧,计算机专业英语单词及翻译等技巧-20210420072747.ppt-原创力文档...
  5. VGA光纤收发器特点及参数
  6. 视频光端机在安防监控工程中的常见技术问题
  7. 串口光猫应用领域及技术参数详解
  8. [渝粤教育] 广东-国家-开放大学 21秋期末考试建筑设备10327k1
  9. 【渝粤题库】陕西师范大学400010 当代西方社会思潮评析 作业(专升本)
  10. les物流执行系统_【精益运营】立足智慧物流 推进仓储智能化稳步升级