#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); //创建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;
}
网友评论