#include "ogrsf_frmts.h"
#include <iostream>
#include <qgstininterpolator.h>
#include <QtCore/QList>
int main() {
const char* pszDriverName = "ESRI Shapefile";
GDALDriver* poDriver;
GDALAllRegister();
poDriver = GetGDALDriverManager()->GetDriverByName(pszDriverName);
if (poDriver == NULL)
{
printf("%s driver not available.\n", pszDriverName);
return 0;
}
GDALDataset* poDS;
poDS = poDriver->Create("d:/newShp.shp", 0, 0, 0, GDT_Unknown, NULL); //創(chuàng)建shp文件
if (poDS == NULL)
{
printf("Creation of output file failed.\n");
return 0;
}
OGRLayer* poLayer;
poLayer = poDS->CreateLayer("point_out", NULL, wkbPoint, NULL);
if (poLayer == NULL)
{
printf("Layer creation failed.\n");
return 0;
}
OGRFieldDefn idField("ID", OFTReal);
OGRFieldDefn firstField("VALUE", OFTInteger);
OGRFieldDefn secondField("X", OFTReal);
OGRFieldDefn thirdField("Y", OFTReal);
idField.SetWidth(32);
firstField.SetWidth(32);
secondField.SetWidth(32);
thirdField.SetWidth(32);
poLayer->CreateField(&idField);
poLayer->CreateField(&firstField);
poLayer->CreateField(&secondField);
poLayer->CreateField(&thirdField);
int x, y;
int a = 10, b = 1000;
for (int i = 1; i <= 30; i++)
{
OGRFeature* poFeature;
poFeature = OGRFeature::CreateFeature(poLayer->GetLayerDefn());
poFeature->SetField("ID", i);
std::cout << "input x:";
std::cin >> x;
std::cout << "input y:";
std::cin >> y;
poFeature->SetField("X", x);
poFeature->SetField("Y", y);
int value;
std::cout << "input value:";
std::cin >> value;
poFeature->SetField("VALUE", value);
OGRPoint pt;
pt.setX(x);
pt.setY(y);
poFeature->SetGeometry(&pt);
if (poLayer->CreateFeature(poFeature) != OGRERR_NONE)
{
printf("Failed to create feature in shapefile.\n");
return 0;
}
OGRFeature::DestroyFeature(poFeature);
}
GDALClose(poDS);
return 1;
}
C++和GDAL實現(xiàn)shapefile(shp)文件的創(chuàng)建
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內容
- 一 gdal.open解析 閱讀api可知,gdal.open方法用于創(chuàng)建和打開數據集dataset,如果以‘w’...
- 在更新Xcode7之后,創(chuàng)建C++類生成的頭文件后綴變成了.hpp,并非.h文件。那就說說.hpp和.h文件的區(qū)別...
- 包含頭文件: /#include /#include 函數: 函數原型: int mkdir(const ch...
- 在AndroidStudio中開發(fā)的時候發(fā)現(xiàn)了一個問題,就是自己創(chuàng)建的C++文件,在CPP文件夾下沒有顯示,或者說...
- 最近在研究block的底層實現(xiàn)方式,查看了大量的文章都說需要先把block代碼轉換成C++。然后在網上搜了一些資料...