GDAL读取Shapefile
--------------------------------------------------------------------------------------
#include <gdal_priv.h>
#include <ogrsf_frmts.h> GDALAllRegister();
OGRDataSource* poDS;
const char* pszDriverName = "ESRI Shapefile";
//
GDALDriverManager* pDriverManager = GetGDALDriverManager(); //new GDALDriverManager();
GDALDriver* pDriver = pDriverManager->GetDriverByName(pszDriverName);
if (pDriver == nullptr)
{
qDebug() << pszDriverName << " driver not available.";
return;
}
//
const char* filePathChar1 = "D:\\data";
OGRSFDriver* pSFDriver = static_cast<OGRSFDriver*>(pDriver);
OGRDataSource* pDataSource = pSFDriver->Open(filePathChar, FALSE); /*
OGRSFDriverRegistrar* pDriverRegistrar = OGRSFDriverRegistrar::GetRegistrar();
OGRSFDriver* pSFDriver = (OGRSFDriver*)pDriverRegistrar->GetDriverByName(pszDriverName);
OGRDataSource* pDataSource = pSFDriver->Open(filePathChar, FALSE);
*/ ------------------------------------------------------------------------------------------------ OGRLayer* pLayer = pDataSource->GetLayerByName(baseNameChar);
/*const char* geometryColumnName = pLayer->GetGeometryColumn();
int fieldIndex = pLayer->FindFieldIndex(geometryColumnName, TRUE);*/
// pEnvelopeDisplay
if (pLayerList.size() == 0) {
OGREnvelope* pEnvelope = new OGREnvelope();
pLayer->GetExtent(pEnvelope, TRUE);
double centerX = (pEnvelope->MinX + pEnvelope->MaxX) / 2;
double centerY = (pEnvelope->MinY + pEnvelope->MaxY) / 2;
double distanceX = pEnvelope->MaxX - pEnvelope->MinX;
double distanceY = pEnvelope->MaxY - pEnvelope->MinY;
//
}
--------------------------------------------------------------------------------------------------
GDAL读取Shapefile的更多相关文章
- GDAL读取Shp问题解决:Unable to open EPSG support file gcs.csv
在GIS软件的开发中,经常用到开源库GDAL读取Shp数据,当shp数据中包含投影信息时,可能会遇到“Unable to open EPSG support file gcs.csv”错误提示,该错误 ...
- 使用C#版本GDAL读取复数图像
GDAL的C#版本虽然在很多算法接口没有导出,但是在读写数据中的接口基本上都是完全导出了.使用ReadRaster和WriteRaster方法来进行读写,同时对这两个方法进行了重载,对于常用的数据类型 ...
- GDAL读取的坐标起点在像素左上角还是像素中心?
目录 1. 问题 2. 结论 3. 例外 1. 问题 笔者在处理地理栅格数据的时候,总是会发生偏差半个像素的问题. 比如说通过ArcMap打开一张.tif,查看其地理信息:同时用记事本打开.tfw,比 ...
- ArcEngine读取ShapeFile时,出现乱码的解决方案
ArcEngine读取ShapeFile时,如果用LicenseControl的话,字段中含有汉字时可以正常使用,当使用LicenseInitializer进行初始化时,读取含有汉字的字段时,就会出现 ...
- 结合C++和GDAL实现shapefile(shp)文件的读取
工具:vs2012+GDAL 2.0 数据:中国省界SHP文件bou2_4p.shp 可点击下载 包含头文件: #include "ogrsf_frmts.h" 代码: int ...
- Java 使用GDAL 读写 shapefile
读取shp文件,并把它转化为json import org.gdal.ogr.*; import org.gdal.ogr.Driver; import org.gdal.gdal.*; public ...
- 结合C++和GDAL实现shapefile(shp)文件的创建和写入
工具:vs2012+GDAL 2.0 包含头文件: #include "ogrsf_frmts.h" int main() { const char *pszDriverName ...
- [GDAL]读取HDF格式的calipso数据
探测地球云层分布的CloudSat和CALIPSO卫星 http://www.nasa.gov/mission_pages/calipso/main/index.html http://www.nas ...
- GDAL读取tiff文件/C++源码
// gdal_geotiff.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "gdal_priv.h&quo ...
随机推荐
- 如何使用npm的部分用法以及npm被墙的解决方法
我们要明白我们使用的npm就是node中自带的包(模块)管理工具:借助NPM可以帮助我们快速安和管理依赖包,使Node与第三方模块之间形成了一个良好的生态系统. 我们可以直接输入npm,查看帮助引导: ...
- Linux网络——配置网络之ifconfig家族命令
Linux网络——配置网络之ifconfig家族命令 摘要:本文主要学习了ifconfig家族用来配置网络的命令. ifconfig命令 ifconfig命令用来显示或设置网络接口信息,设置只是临时生 ...
- Java日期时间API系列4-----Jdk7及以前的日期时间类的线程安全问题
1.Date类为可变的,在多线程并发环境中会有线程安全问题. (1)可以使用锁来处理并发问题. (2)使用JDK8 Instant 或 LocalDateTime替代. 2.Calendar的子类为 ...
- centos 安装gitlab
1.开始安装依赖软件:yum -y install policycoreutils openssh-server openssh-clients postfix 2.设置postfix开机自启动,po ...
- centos下搭建python双版本环境
目录 centos下搭建python双版本环境 一.安装python3 1.理清自带python位置 2.更新用于下载编译python3的相关包 3.安装pip 4.用pip安装wget 5.用wge ...
- JS基础语法---一元运算符
* ++ -- 都是运算符 * ++ 和 -- 可以分为:前+ 和后+ and 前- 和后- * 如果++在后面:如: num++ +10参与 ...
- grep命令提示"binary file matches **.log"解决方法
仔细想想,这个问题遇到很多次了,之前一直以为很复杂,一搜索发现解决这么简单,记录一下做备忘. grep test XXX.log Binary file app.log matches 此时使用-a参 ...
- JavaScriptCore
在移动的混合开发中经常用到OC与JS的交互,就涉及iOS中的JavaScriptCore类,下面终结如下 JavaScriptCore中的类 在项目中引入JavaScriptCore后,链到头文件中, ...
- Android框架之EventBus的使用
简介 EventBus是由greenrobot组织贡献的一个Android事件发布/订阅的轻量级框架.EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用 ...
- [20191013]oracle number类型存储转化脚本.txt
[20191013]oracle number类型存储转化脚本.txt --//测试看看是否可以利用bc obase=100的输出解决问题.另外以前脚本忘记考虑尾数的四舍五入问题.--//也许编程就是 ...