本文整理汇总了C++中GDALDriver::GetDescription方法的典型用法代码示例。如果您正苦于以下问题:C++ GDALDriver::GetDescription方法的具体用法?C++ GDALDriver::GetDescription怎么用?C++ GDALDriver::GetDescription使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GDALDriver
的用法示例。
在下文中一共展示了GDALDriver::GetDescription方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetGDALDriverManager
Handle<Value> GDALDrivers::getNames(const Arguments& args)
{
HandleScope scope;
int gdal_count = GetGDALDriverManager()->GetDriverCount();
int i, ogr_count = 0;
std::string name;
#if GDAL_VERSION_MAJOR < 2
ogr_count = OGRSFDriverRegistrar::GetRegistrar()->GetDriverCount();
#endif
int n = gdal_count + ogr_count;
Local<Array> driver_names = Array::New(n);
for (i = 0; i < gdal_count; ++i) {
GDALDriver *driver = GetGDALDriverManager()->GetDriver(i);
name = driver->GetDescription();
#if GDAL_VERSION_MAJOR < 2
if(name == "VRT") name = "VRT:raster";
#endif
driver_names->Set(i, SafeString::New(name.c_str()));
}
for (; i < n; ++i) {
OGRSFDriver *driver = OGRSFDriverRegistrar::GetRegistrar()->GetDriver(i - gdal_count);
name = driver->GetName();
#if GDAL_VERSION_MAJOR < 2
if(name == "VRT") name = "VRT:vector";
#endif
driver_names->Set(i, SafeString::New(name.c_str()));
}
return scope.Close(driver_names);
}
示例2: openGDALDataSet
GDALDataset* openGDALDataSet()
{
cout << "Opening " << inDataFile->c_str() << "...\n";
GDALDataset* ds = (GDALDataset *)GDALOpen(inDataFile->c_str(), GA_ReadOnly);
if (ds != NULL) {
GDALDriver* drv = ds->GetDriver();
if (drv == NULL) {
cout << " -- Unable to find GDAL driver for " << (char *)inDataFile->c_str() << " -- ";
ds = NULL;
} else {
cout << "GDAL FILE TYPE: " << drv->GetDescription() << "\n";
cout << "CONTAINS " << ds->GetRasterCount() << " dataset(s); size " << ds->GetRasterXSize() << "x" << ds->GetRasterYSize() << "\n";
if (ds->GetRasterCount() == 0) {
ds = NULL;
cout << " -- FILE " << (char *)inDataFile->c_str() << " contains zero raster bands -- ";
}
}
} else
cout << " -- Unable to open " << (char *)inDataFile->c_str() << " -- ";
cout << "...Done.\n";
return ds;
}
示例3: OGR_Dr_CopyDataSource
OGRDataSourceH OGR_Dr_CopyDataSource( OGRSFDriverH hDriver,
OGRDataSourceH hSrcDS,
const char *pszNewName,
char **papszOptions )
{
VALIDATE_POINTER1( hDriver, "OGR_Dr_CopyDataSource", NULL );
VALIDATE_POINTER1( hSrcDS, "OGR_Dr_CopyDataSource", NULL );
VALIDATE_POINTER1( pszNewName, "OGR_Dr_CopyDataSource", NULL );
GDALDriver* poDriver = (GDALDriver*)hDriver;
if( !poDriver->GetMetadataItem( GDAL_DCAP_CREATE ) )
{
CPLError( CE_Failure, CPLE_NotSupported,
"%s driver does not support data source creation.",
poDriver->GetDescription() );
return NULL;
}
GDALDataset *poSrcDS = (GDALDataset*) hSrcDS;
GDALDataset *poODS;
poODS = poDriver->Create( pszNewName, 0, 0, 0, GDT_Unknown, papszOptions );
if( poODS == NULL )
return NULL;
/* -------------------------------------------------------------------- */
/* Process each data source layer. */
/* -------------------------------------------------------------------- */
for( int iLayer = 0; iLayer < poSrcDS->GetLayerCount(); iLayer++ )
{
OGRLayer *poLayer = poSrcDS->GetLayer(iLayer);
if( poLayer == NULL )
continue;
poODS->CopyLayer( poLayer, poLayer->GetLayerDefn()->GetName(),
papszOptions );
}
return (OGRDataSourceH)poODS;
}
示例4: if
//.........这里部分代码省略.........
pszSQLStatement != nullptr )
{
poDS = static_cast<GDALDataset *>(GDALOpenEx(
pszDataSource,
GDAL_OF_READONLY | GDAL_OF_VECTOR, nullptr,
papszOpenOptions, nullptr));
if( poDS != nullptr && bVerbose )
{
printf("Had to open data source read-only.\n");
#ifdef __AFL_HAVE_MANUAL_CONTROL
bReadOnly = true;
#endif
}
}
GDALDriver *poDriver = nullptr;
if( poDS != nullptr )
poDriver = poDS->GetDriver();
/* -------------------------------------------------------------------- */
/* Report failure */
/* -------------------------------------------------------------------- */
if( poDS == nullptr )
{
printf("FAILURE:\n"
"Unable to open datasource `%s' with the following drivers.\n",
pszDataSource);
#ifdef __AFL_HAVE_MANUAL_CONTROL
continue;
#else
OGRSFDriverRegistrar *poR = OGRSFDriverRegistrar::GetRegistrar();
for( int iDriver = 0; iDriver < poR->GetDriverCount(); iDriver++ )
{
printf(" -> %s\n", poR->GetDriver(iDriver)->GetDescription());
}
nRet = 1;
goto end;
#endif
}
CPLAssert(poDriver != nullptr);
/* -------------------------------------------------------------------- */
/* Some information messages. */
/* -------------------------------------------------------------------- */
if( bVerbose )
printf("INFO: Open of `%s'\n"
" using driver `%s' successful.\n",
pszDataSource, poDriver->GetDescription());
if( bVerbose && !EQUAL(pszDataSource,poDS->GetDescription()) )
{
printf("INFO: Internal data source name `%s'\n"
" different from user name `%s'.\n",
poDS->GetDescription(), pszDataSource);
}
GDALInfoReportMetadata(static_cast<GDALMajorObjectH>(poDS),
bListMDD,
bShowMetadata,
papszExtraMDDomains);
if( bDatasetGetNextFeature )
{
nRepeatCount = 0; // skip layer reporting.
示例5: ogrCheckExists
SEXP ogrCheckExists (SEXP ogrSource, SEXP Layer) {
OGRLayer *poLayer;
#ifdef GDALV2
GDALDataset *poDS;
GDALDriver *poDriver;
#else
OGRDataSource *poDS;
OGRSFDriver *poDriver;
#endif
SEXP ans, drv;
int pc=0;
PROTECT(ans=NEW_LOGICAL(1));
pc++;
installErrorHandler();
#ifdef GDALV2
poDS=(GDALDataset*) GDALOpenEx(CHAR(STRING_ELT(ogrSource, 0)), GDAL_OF_VECTOR, NULL, NULL, NULL);
if (poDS != NULL) poDriver = poDS->GetDriver();
#else
poDS=OGRSFDriverRegistrar::Open(CHAR(STRING_ELT(ogrSource, 0)),
FALSE, &poDriver);
#endif
uninstallErrorHandlerAndTriggerError();
if (poDS==NULL) {
// installErrorHandler();
// OGRDataSource::DestroyDataSource( poDS );
// uninstallErrorHandlerAndTriggerError();
// delete poDS;
LOGICAL_POINTER(ans)[0] = FALSE;
UNPROTECT(pc);
return(ans);
}
installErrorHandler();
poLayer = poDS->GetLayerByName(CHAR(STRING_ELT(Layer, 0)));
uninstallErrorHandlerAndTriggerError();
if (poLayer == NULL) {
installErrorHandler();
#ifdef GDALV2
GDALClose( poDS );
#else
OGRDataSource::DestroyDataSource( poDS );
#endif
uninstallErrorHandlerAndTriggerError();
// delete poDS;
LOGICAL_POINTER(ans)[0] = FALSE;
UNPROTECT(pc);
return(ans);
}
LOGICAL_POINTER(ans)[0] = TRUE;
PROTECT(drv=allocVector(STRSXP,1));
pc++;
installErrorHandler();
#ifdef GDALV2
SET_STRING_ELT(drv, 0, mkChar(poDriver->GetDescription()));
#else
SET_STRING_ELT(drv, 0, mkChar(poDriver->GetName()));
#endif
uninstallErrorHandlerAndTriggerError();
setAttrib(ans, install("driver"), drv);
installErrorHandler();
#ifdef GDALV2
GDALClose( poDS );
#else
OGRDataSource::DestroyDataSource( poDS );
#endif
uninstallErrorHandlerAndTriggerError();
// delete poDS;
UNPROTECT(pc);
return(ans);
}
示例6: ogrInfo
// extern "C" {
SEXP ogrInfo(SEXP ogrsourcename, SEXP Layer) {
// return FIDs, nFields, fieldInfo
SEXP ans, vec1, vec2, vec3,/*mat,*/drv, dvec;
SEXP itemlist, itemnames, itemwidth, itemtype, itemTypeNames;
SEXP itemlistmaxcount;
#ifdef GDALV2
SEXP dFIDs;
#endif
/*SEXP geotype;*/
int nFIDs, nFields, iField, *nCount, pc=0;
#ifdef GDALV2
GDALDriver *poDriver;
GDALDataset *poDS;
#else
OGRDataSource *poDS;
OGRSFDriver *poDriver;
#endif
OGRLayer *poLayer;
OGRFeature *poFeature;
OGRFeatureDefn *poDefn;
/* OGRGeometry *poGeom;*/
installErrorHandler();
#ifdef GDALV2
poDS=(GDALDataset*) GDALOpenEx(CHAR(STRING_ELT(ogrsourcename, 0)), GDAL_OF_VECTOR, NULL, NULL, NULL);
if(poDS==NULL) {
uninstallErrorHandlerAndTriggerError();
error("Cannot open data source");
}
poDriver = poDS->GetDriver();
#else
poDS=OGRSFDriverRegistrar::Open(CHAR(STRING_ELT(ogrsourcename, 0)),
FALSE, &poDriver);
#endif
uninstallErrorHandlerAndTriggerError();
if(poDS==NULL) {
installErrorHandler();
#ifdef GDALV2
GDALClose( poDS );
#else
OGRDataSource::DestroyDataSource( poDS );
#endif
uninstallErrorHandlerAndTriggerError();
// delete poDS;
error("Cannot open file");
}
installErrorHandler();
poLayer = poDS->GetLayerByName(CHAR(STRING_ELT(Layer, 0)));
uninstallErrorHandlerAndTriggerError();
if(poLayer == NULL) {
installErrorHandler();
#ifdef GDALV2
GDALClose( poDS );
#else
OGRDataSource::DestroyDataSource( poDS );
#endif
uninstallErrorHandlerAndTriggerError();
// delete poDS;
error("Cannot open layer");
}
// allocate a list for return values
PROTECT(ans=allocVector(VECSXP,6));
pc++;
PROTECT(drv=allocVector(STRSXP,1));
pc++;
installErrorHandler();
#ifdef GDALV2
SET_STRING_ELT(drv, 0, mkChar(poDriver->GetDescription()));
#else
SET_STRING_ELT(drv, 0, mkChar(poDriver->GetName()));
#endif
uninstallErrorHandlerAndTriggerError();
SET_VECTOR_ELT(ans,3,drv);
PROTECT(vec1=allocVector(INTSXP,1));
pc++;
installErrorHandler();
#ifdef GDALV2
GIntBig nFIDs64 = poLayer->GetFeatureCount();
nFIDs = (nFIDs64 > INT_MAX) ? INT_MAX :
(nFIDs64 < INT_MIN) ? INT_MIN : (int) nFIDs64;
if ((GIntBig) nFIDs != nFIDs64) {
warning("ogrInfo: feature count overflow");
INTEGER(vec1)[0]=NA_INTEGER;
PROTECT(dFIDs=NEW_NUMERIC(1));
pc++;
NUMERIC_POINTER(dFIDs)[0] = (double) nFIDs64;
setAttrib(vec1, install("dFIDs"), dFIDs);
} else {
// store number of FIDs
INTEGER(vec1)[0]=nFIDs;
//.........这里部分代码省略.........
示例7: ogrListLayers
SEXP ogrListLayers (SEXP ogrSource) {
#ifdef GDALV2
GDALDataset *poDS;
GDALDriver *poDriver;
#else
OGRDataSource *poDS;
OGRSFDriver *poDriver;
#endif
OGRLayer *poLayer;
int i, nlayers;
SEXP ans, debug;
int pc=0;
installErrorHandler();
#ifdef GDALV2
poDS=(GDALDataset*) GDALOpenEx(CHAR(STRING_ELT(ogrSource, 0)), GDAL_OF_VECTOR, NULL, NULL, NULL);
if(poDS==NULL) {
uninstallErrorHandlerAndTriggerError();
error("Cannot open data source");
}
poDriver = poDS->GetDriver();
#else
poDS=OGRSFDriverRegistrar::Open(CHAR(STRING_ELT(ogrSource, 0)),
FALSE, &poDriver);
#endif
uninstallErrorHandlerAndTriggerError();
if(poDS==NULL) {
error("Cannot open data source");
}
debug = getAttrib(ogrSource, mkString("debug"));
installErrorHandler();
nlayers = poDS->GetLayerCount();
uninstallErrorHandlerAndTriggerError();
if (LOGICAL_POINTER(debug)[0] == TRUE)
Rprintf("ogrListLayers: nlayers %d\n", nlayers);
PROTECT(ans=NEW_CHARACTER(nlayers+1));
pc++;
for (i=0; i<nlayers; i++) {
installErrorHandler();
poLayer = poDS->GetLayer(i);
if(poLayer == NULL) {
if (LOGICAL_POINTER(debug)[0] == TRUE) {
SET_STRING_ELT(ans, i, mkChar(""));
Rprintf("ogrListLayers: NULL layer %d\n", i);
} else {
uninstallErrorHandlerAndTriggerError();
error("Cannot open layer");
}
} else {
SET_STRING_ELT(ans, i, mkChar(poLayer->GetLayerDefn()->GetName()));
}
uninstallErrorHandlerAndTriggerError();
}
installErrorHandler();
#ifdef GDALV2
SET_STRING_ELT(ans, nlayers, mkChar(poDriver->GetDescription()));
#else
SET_STRING_ELT(ans, nlayers, mkChar(poDriver->GetName()));
#endif
uninstallErrorHandlerAndTriggerError();
installErrorHandler();
#ifdef GDALV2
GDALClose( poDS );
#else
OGRDataSource::DestroyDataSource( poDS );
#endif
uninstallErrorHandlerAndTriggerError();
UNPROTECT(pc);
return(ans);
}
示例8: main
int main(int argc, const char * argv[]) {
boost::filesystem::path p = boost::filesystem::current_path();
fprintf(stdout,"cwp := %s\n",p.c_str());
GDALAllRegister();
// for (int i = 0; i < GDALGetDriverCount(); i++) {
// GDALDriver * d = (GDALDriver *)GDALGetDriver(i);
// const char * desc = d->GetDescription();
// fprintf(stdout, "GDAL: %s\n",desc);
// }
GDALDataset *poDataset = (GDALDataset *) GDALOpen(DataPath.c_str(), GA_ReadOnly );
std::string SupportedDriver = {"GTiff"};
if (poDataset != NULL) {
GDALDriver * drv = poDataset->GetDriver();
assert(0 == SupportedDriver.compare(drv->GetDescription()));
assert (1 == poDataset->GetRasterCount());
fprintf(stdout,"RasterXSize := %d\n",poDataset->GetRasterXSize());
fprintf(stdout,"RasterYSize := %d\n",poDataset->GetRasterYSize());
fprintf(stdout,"ProjectionRef := %s\n",poDataset->GetProjectionRef());
double adfGeoTransform[6];
if ( poDataset->GetGeoTransform(adfGeoTransform) == CE_None ) {
fprintf(stdout, "Origin = (%.6f, %.6f)\n",
adfGeoTransform[0],adfGeoTransform[3]); // upper left courner
fprintf(stdout, "Pixel Size = (%.6f, %.6f)\n",
adfGeoTransform[1],adfGeoTransform[5]); // pixel width/height
}
GDALRasterBand *poBand = poDataset->GetRasterBand(1);
int nBlockXSize, nBlockYSize;
poBand->GetBlockSize(&nBlockXSize, &nBlockYSize);
std::string SupportedDataType = {"Int16"};
assert (GDT_Int16 == poBand->GetRasterDataType());
printf( "Block=%dx%d Type=%s, ColorInterp=%s\n",
nBlockXSize, nBlockYSize,
GDALGetDataTypeName(poBand->GetRasterDataType()),
GDALGetColorInterpretationName(
poBand->GetColorInterpretation()) );
FILE * patch = fopen("patch.txt","w");
for (int i = 0; i < poBand->GetYSize(); i++) {
int nXSize = poBand->GetXSize();
float *pafScanline = (float *) CPLMalloc(sizeof(float)*nXSize);
poBand->RasterIO( GF_Read, 0, 0, nXSize, 1, pafScanline, nXSize, 1, GDT_Float32, 0, 0);
for (int j = 0; j < nXSize; j++) {
fprintf(patch, "%f ", pafScanline[j]);
}
fprintf(patch, "\n");
CPLFree(pafScanline);
}
fclose(patch);
GDALClose(poDataset);
}
DelaunayTriangulation dt;
//std::srand(static_cast<unsigned int>(std::time(0))); // use current time as seed for random generator
/*
std::srand(static_cast<unsigned int>(3652123216145));
for (int i = 0; i < 10 ; i++) {
double x = 180.0 * static_cast <float> (rand()) / static_cast <float> (RAND_MAX);;
double y = 180.0 * static_cast <float> (rand()) / static_cast <float> (RAND_MAX);;
dt.addPt(x, y, 0.0);
}
*/
/*
dt.addPt(-0.02222276248244826, -0.4979727817680433, 0.0);
dt.addPt(-0.4285431913366012, 0.4745826469497594, 0.0);
dt.addPt( 0.3105396575392593, 0.2400179190933871, 0.0);
dt.addPt(-0.01883958887200765, 0.3630260628303755, 0.0);
dt.addPt( 0.3790312361708201, 0.3779794437605696, 0.0);
dt.addPt(-0.2994955874043476, 0.3776609263174803, 0.0);
dt.addPt( 0.3471817493878135, 0.08365533089605659, 0.0);
dt.addPt(-0.00485819764887746, 0.3482682405489201, 0.0);
dt.addPt( 0.3443122672329771, -0.1437312230875075, 0.0);
dt.addPt( 0.309330780347186, -0.07758103877080702, 0.0);
dt.compute();
*/
return 0;
}
示例9: if
//.........这里部分代码省略.........
GDALRasterizeOptionsNew(argv + 1, psOptionsForBinary);
CSLDestroy(argv);
if( psOptions == nullptr )
{
Usage();
}
if( !(psOptionsForBinary->bQuiet) )
{
GDALRasterizeOptionsSetProgress(psOptions, GDALTermProgress, nullptr);
}
if( psOptionsForBinary->pszSource == nullptr )
Usage("No input file specified.");
if( psOptionsForBinary->pszDest == nullptr )
Usage("No output file specified.");
/* -------------------------------------------------------------------- */
/* Open input file. */
/* -------------------------------------------------------------------- */
GDALDatasetH hInDS = GDALOpenEx(
psOptionsForBinary->pszSource, GDAL_OF_VECTOR | GDAL_OF_VERBOSE_ERROR,
nullptr, nullptr, nullptr);
if( hInDS == nullptr )
exit(1);
/* -------------------------------------------------------------------- */
/* Open output file if it exists. */
/* -------------------------------------------------------------------- */
GDALDatasetH hDstDS = nullptr;
if( !(psOptionsForBinary->bCreateOutput) )
{
CPLPushErrorHandler(CPLQuietErrorHandler);
hDstDS = GDALOpenEx(
psOptionsForBinary->pszDest,
GDAL_OF_RASTER | GDAL_OF_VERBOSE_ERROR | GDAL_OF_UPDATE,
nullptr, nullptr, nullptr );
CPLPopErrorHandler();
}
if( psOptionsForBinary->pszFormat != nullptr &&
(psOptionsForBinary->bCreateOutput || hDstDS == nullptr) )
{
GDALDriverManager *poDM = GetGDALDriverManager();
GDALDriver *poDriver =
poDM->GetDriverByName(psOptionsForBinary->pszFormat);
char** papszDriverMD = (poDriver) ? poDriver->GetMetadata(): nullptr;
if( poDriver == nullptr ||
!CPLTestBool(CSLFetchNameValueDef(papszDriverMD, GDAL_DCAP_RASTER,
"FALSE")) ||
!CPLTestBool(CSLFetchNameValueDef(papszDriverMD, GDAL_DCAP_CREATE,
"FALSE")) )
{
fprintf(stderr,
"Output driver `%s' not recognised or does not support "
"direct output file creation.\n",
psOptionsForBinary->pszFormat);
fprintf(stderr,
"The following format drivers are configured and "
"support direct output:\n" );
for( int iDriver = 0; iDriver < poDM->GetDriverCount(); iDriver++ )
{
GDALDriver* poIter = poDM->GetDriver(iDriver);
papszDriverMD = poIter->GetMetadata();
if( CPLTestBool(
CSLFetchNameValueDef(papszDriverMD, GDAL_DCAP_RASTER,
"FALSE")) &&
CPLTestBool(
CSLFetchNameValueDef(papszDriverMD, GDAL_DCAP_CREATE,
"FALSE")) )
{
fprintf(stderr, " -> `%s'\n", poIter->GetDescription());
}
}
exit(1);
}
}
int bUsageError = FALSE;
GDALDatasetH hRetDS = GDALRasterize(psOptionsForBinary->pszDest,
hDstDS,
hInDS,
psOptions, &bUsageError);
if(bUsageError == TRUE)
Usage();
const int nRetCode = hRetDS ? 0 : 1;
GDALClose(hInDS);
GDALClose(hRetDS);
GDALRasterizeOptionsFree(psOptions);
GDALRasterizeOptionsForBinaryFree(psOptionsForBinary);
GDALDestroyDriverManager();
return nRetCode;
}
示例10: Usage
static void Usage(const char* pszAdditionalMsg, int bShort)
{
OGRSFDriverRegistrar *poR = OGRSFDriverRegistrar::GetRegistrar();
printf( "Usage: ogr2ogr [--help-general] [-skipfailures] [-append] [-update]\n"
" [-select field_list] [-where restricted_where|@filename]\n"
" [-progress] [-sql <sql statement>|@filename] [-dialect dialect]\n"
" [-preserve_fid] [-fid FID]\n"
" [-spat xmin ymin xmax ymax] [-spat_srs srs_def] [-geomfield field]\n"
" [-a_srs srs_def] [-t_srs srs_def] [-s_srs srs_def]\n"
" [-f format_name] [-overwrite] [[-dsco NAME=VALUE] ...]\n"
" dst_datasource_name src_datasource_name\n"
" [-lco NAME=VALUE] [-nln name] \n"
" [-nlt type|PROMOTE_TO_MULTI|CONVERT_TO_LINEAR|CONVERT_TO_CURVE]\n"
" [-dim 2|3|layer_dim] [layer [layer ...]]\n"
"\n"
"Advanced options :\n"
" [-gt n] [-ds_transaction]\n"
" [[-oo NAME=VALUE] ...] [[-doo NAME=VALUE] ...]\n"
" [-clipsrc [xmin ymin xmax ymax]|WKT|datasource|spat_extent]\n"
" [-clipsrcsql sql_statement] [-clipsrclayer layer]\n"
" [-clipsrcwhere expression]\n"
" [-clipdst [xmin ymin xmax ymax]|WKT|datasource]\n"
" [-clipdstsql sql_statement] [-clipdstlayer layer]\n"
" [-clipdstwhere expression]\n"
" [-wrapdateline][-datelineoffset val]\n"
" [[-simplify tolerance] | [-segmentize max_dist]]\n"
" [-addfields] [-unsetFid]\n"
" [-relaxedFieldNameMatch] [-forceNullable] [-unsetDefault]\n"
" [-fieldTypeToString All|(type1[,type2]*)] [-unsetFieldWidth]\n"
" [-mapFieldType srctype|All=dsttype[,srctype2=dsttype2]*]\n"
" [-fieldmap identity | index1[,index2]*]\n"
" [-splitlistfields] [-maxsubfields val]\n"
" [-explodecollections] [-zfield field_name]\n"
" [-gcp pixel line easting northing [elevation]]* [-order n | -tps]\n"
" [-nomd] [-mo \"META-TAG=VALUE\"]* [-noNativeData]\n");
if (bShort)
{
printf( "\nNote: ogr2ogr --long-usage for full help.\n");
if( pszAdditionalMsg )
fprintf(stderr, "\nFAILURE: %s\n", pszAdditionalMsg);
exit( 1 );
}
printf("\n -f format_name: output file format name, possible values are:\n");
std::vector<CPLString> aoSetDrivers;
for( int iDriver = 0; iDriver < poR->GetDriverCount(); iDriver++ )
{
GDALDriver *poDriver = poR->GetDriver(iDriver);
if( CPLTestBool( CSLFetchNameValueDef(poDriver->GetMetadata(), GDAL_DCAP_CREATE, "FALSE") ) )
aoSetDrivers.push_back( poDriver->GetDescription() );
}
std::sort (aoSetDrivers.begin(), aoSetDrivers.end(), StringCISortFunction);
for( size_t i = 0; i < aoSetDrivers.size(); i++ )
{
printf( " -f \"%s\"\n", aoSetDrivers[i].c_str() );
}
printf( " -append: Append to existing layer instead of creating new if it exists\n"
" -overwrite: delete the output layer and recreate it empty\n"
" -update: Open existing output datasource in update mode\n"
" -progress: Display progress on terminal. Only works if input layers have the \n"
" \"fast feature count\" capability\n"
" -select field_list: Comma-delimited list of fields from input layer to\n"
" copy to the new layer (defaults to all)\n"
" -where restricted_where: Attribute query (like SQL WHERE)\n"
" -wrapdateline: split geometries crossing the dateline meridian\n"
" (long. = +/- 180deg)\n"
" -datelineoffset: offset from dateline in degrees\n"
" (default long. = +/- 10deg,\n"
" geometries within 170deg to -170deg will be split)\n"
" -sql statement: Execute given SQL statement and save result.\n"
" -dialect value: select a dialect, usually OGRSQL to avoid native sql.\n"
" -skipfailures: skip features or layers that fail to convert\n"
" -gt n: group n features per transaction (default 20000). n can be set to unlimited\n"
" -spat xmin ymin xmax ymax: spatial query extents\n"
" -simplify tolerance: distance tolerance for simplification.\n"
" -segmentize max_dist: maximum distance between 2 nodes.\n"
" Used to create intermediate points\n"
" -dsco NAME=VALUE: Dataset creation option (format specific)\n"
" -lco NAME=VALUE: Layer creation option (format specific)\n"
" -oo NAME=VALUE: Input dataset open option (format specific)\n"
" -doo NAME=VALUE: Destination dataset open option (format specific)\n"
" -nln name: Assign an alternate name to the new layer\n"
" -nlt type: Force a geometry type for new layer. One of NONE, GEOMETRY,\n"
" POINT, LINESTRING, POLYGON, GEOMETRYCOLLECTION, MULTIPOINT,\n"
" MULTIPOLYGON, or MULTILINESTRING, or PROMOTE_TO_MULTI or CONVERT_TO_LINEAR. Add \"25D\" for 3D layers.\n"
" Default is type of source layer.\n"
" -dim dimension: Force the coordinate dimension to the specified value.\n"
" -fieldTypeToString type1,...: Converts fields of specified types to\n"
" fields of type string in the new layer. Valid types are : Integer,\n"
" Integer64, Real, String, Date, Time, DateTime, Binary, IntegerList, Integer64List, RealList,\n"
" StringList. Special value All will convert all fields to strings.\n"
" -fieldmap index1,index2,...: Specifies the list of field indexes to be\n"
" copied from the source to the destination. The (n)th value specified\n"
//.........这里部分代码省略.........