Ignore:
Timestamp:
Jun 6, 2016, 3:29:50 PM (8 years ago)
Author:
djay
Message:

Add support for GDAL 2 (base-vect-ops).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/zoo-project/zoo-services/ogr/ogr2ogr/service.c

    r395 r766  
    3333#include "cpl_string.h"
    3434#include "ogr_api.h"
     35#if GDAL_VERSION_MAJOR >= 2
     36#include <gdal_priv.h>
     37#endif
    3538#ifdef ZOO_SERVICE
    3639#include "service.h"
     
    5053static void Usage();
    5154
    52 static int TranslateLayer( OGRDataSource *poSrcDS,
    53                            OGRLayer * poSrcLayer,
    54                            OGRDataSource *poDstDS,
    55                            char ** papszLSCO,
    56                            const char *pszNewLayerName,
    57                            int bTransform,
    58                            OGRSpatialReference *poOutputSRS,
    59                            OGRSpatialReference *poSourceSRS,
    60                            char **papszSelFields,
    61                            int bAppend, int eGType,
    62                            int bOverwrite,
    63                            double dfMaxSegmentLength);
    64 
     55static int TranslateLayer(
     56#if GDAL_VERSION_MAJOR >= 2
     57                          GDALDataset
     58#else
     59                          OGRDataSource
     60#endif
     61                          *poSrcDS,
     62                          OGRLayer * poSrcLayer,
     63#if GDAL_VERSION_MAJOR >= 2
     64                          GDALDataset
     65#else
     66                          OGRDataSource
     67#endif
     68                          *poDstDS,
     69                          char ** papszLSCO,
     70                          const char *pszNewLayerName,
     71                          int bTransform,
     72                          OGRSpatialReference *poOutputSRS,
     73                          OGRSpatialReference *poSourceSRS,
     74                          char **papszSelFields,
     75                          int bAppend, int eGType,
     76                          int bOverwrite,
     77                          double dfMaxSegmentLength
     78                           );
     79 
    6580static int bSkipFailures = FALSE;
    6681static int nGroupTransactions = 200;
     
    575590/*      Open data source.                                               */
    576591/* -------------------------------------------------------------------- */
    577     OGRDataSource       *poDS;
    578        
    579     poDS = OGRSFDriverRegistrar::Open( pszDataSource, FALSE );
     592#if GDAL_VERSION_MAJOR >= 2
     593      GDALDataset *poDS;
     594      GDALDataset *poODS;
     595      GDALDriverManager* poR=GetGDALDriverManager();
     596      GDALDriver          *poDriver = NULL;
     597#else
     598      OGRDataSource* poDS;
     599      OGRDataSource *poODS;
     600      OGRSFDriverRegistrar    *poR = OGRSFDriverRegistrar::GetRegistrar();
     601      OGRSFDriver          *poDriver = NULL;
     602#endif
    580603
    581604/* -------------------------------------------------------------------- */
     
    584607    if( poDS == NULL )
    585608    {
    586         OGRSFDriverRegistrar    *poR = OGRSFDriverRegistrar::GetRegistrar();
    587        
    588609        fprintf( stderr, "FAILURE:\n"
    589610                "Unable to open datasource `%s' with the following drivers.\n",
     
    592613        for( int iDriver = 0; iDriver < poR->GetDriverCount(); iDriver++ )
    593614        {
    594             fprintf( stderr, "  -> %s\n", poR->GetDriver(iDriver)->GetName() );
     615#if GDAL_VERSION_MAJOR >= 2
     616            fprintf( stderr, "  -> %s\n", poR->GetDriver(iDriver)->GetDescription() );
     617#else
     618            fprintf( stderr, "  -> %s\n", poR->GetDriver(iDriver)->GetName() );
     619#endif
    595620        }
    596621#ifdef ZOO_SERVICE
     
    607632/*      Try opening the output datasource as an existing, writable      */
    608633/* -------------------------------------------------------------------- */
    609     OGRDataSource       *poODS;
    610    
    611634    if( bUpdate )
    612635    {
    613         poODS = OGRSFDriverRegistrar::Open( pszDestDataSource, TRUE );
     636        poODS =
     637#if GDAL_VERSION_MAJOR >= 2
     638          (GDALDataset*) GDALOpenEx( pszDestDataSource,
     639                                     GDAL_OF_UPDATE | GDAL_OF_VECTOR,
     640                                     NULL, NULL, NULL )
     641#else
     642          OGRSFDriverRegistrar::Open( pszDestDataSource, TRUE )
     643#endif
     644          ;
    614645        if( poODS == NULL )
    615646        {
     
    639670    else
    640671    {
    641         OGRSFDriverRegistrar *poR = OGRSFDriverRegistrar::GetRegistrar();
    642         OGRSFDriver          *poDriver = NULL;
    643672        int                  iDriver;
    644673
     
    647676             iDriver++ )
    648677        {
    649             if( EQUAL(poR->GetDriver(iDriver)->GetName(),pszFormat) )
     678#if GDAL_VERSION_MAJOR >=2
     679            if( EQUAL(poR->GetDriver(iDriver)->GetDescription(),pszFormat) )
     680#else
     681            if( EQUAL(poR->GetDriver(iDriver)->GetName(),pszFormat) )
     682#endif
    650683            {
    651684                poDriver = poR->GetDriver(iDriver);
     
    660693            for( iDriver = 0; iDriver < poR->GetDriverCount(); iDriver++ )
    661694            {
    662                 fprintf( stderr,  "  -> `%s'\n", poR->GetDriver(iDriver)->GetName() );
     695#if GDAL_VERSION_MAJOR >= 2
     696              fprintf( stderr, "  -> %s\n", poR->GetDriver(iDriver)->GetDescription() );
     697#else
     698              fprintf( stderr, "  -> %s\n", poR->GetDriver(iDriver)->GetName() );
     699#endif
    663700            }
    664701#ifdef ZOO_SERVICE
     
    672709        }
    673710
    674         if( !poDriver->TestCapability( ODrCCreateDataSource ) )
     711#if GDAL_VERSION_MAJOR >=2
     712        if( !CPLTestBool( CSLFetchNameValueDef(poDriver->GetMetadata(), GDAL_DCAP_CREATE, "FALSE") ) )
     713#else
     714        if( !poDriver->TestCapability( ODrCCreateDataSource ) )
     715#endif
    675716        {
    676717            fprintf( stderr,  "%s driver does not support data source creation.\n",
     
    689730/*      Create the output data source.                                  */
    690731/* -------------------------------------------------------------------- */
    691         poODS = poDriver->CreateDataSource( pszDestDataSource, papszDSCO );
     732#if GDAL_VERSION_MAJOR >=2
     733        poODS = poDriver->Create( pszDestDataSource, 0, 0, 0, GDT_Unknown, papszDSCO );
     734#else
     735        poODS = poDriver->CreateDataSource( pszDestDataSource, papszDSCO );
     736#endif
    692737        if( poODS == NULL )
    693738        {
     
    887932
    888933{
    889     OGRSFDriverRegistrar        *poR = OGRSFDriverRegistrar::GetRegistrar();
     934#if GDAL_VERSION_MAJOR >= 2
     935      GDALDataset *poDS;
     936      GDALDataset *poODS;
     937      GDALDriverManager* poR=GetGDALDriverManager();
     938      GDALDriver          *poDriver = NULL;
     939#else
     940      OGRDataSource* poDS;
     941      OGRDataSource *poODS;
     942      OGRSFDriverRegistrar    *poR = OGRSFDriverRegistrar::GetRegistrar();
     943      OGRSFDriver          *poDriver = NULL;
     944#endif
    890945
    891946#ifdef ZOO_SERVICE
     
    908963    for( int iDriver = 0; iDriver < poR->GetDriverCount(); iDriver++ )
    909964    {
    910         OGRSFDriver *poDriver = poR->GetDriver(iDriver);
    911 
    912         if( poDriver->TestCapability( ODrCCreateDataSource ) )
    913             printf( "     -f \"%s\"\n", poDriver->GetName() );
     965        poDriver = poR->GetDriver(iDriver);
     966
     967#if GDAL_VERSION_MAJOR >=2
     968        if( !CPLTestBool( CSLFetchNameValueDef(poDriver->GetMetadata(), GDAL_DCAP_CREATE, "FALSE") ) )
     969#else
     970        if( !poDriver->TestCapability( ODrCCreateDataSource ) )
     971#endif
     972#if GDAL_VERSION_MAJOR >= 2
     973            fprintf( stderr, "  -> %s\n", poDriver->GetDescription() );
     974#else
     975            fprintf( stderr, "  -> %s\n", poDriver->GetName() );
     976#endif
    914977    }
    915978
     
    9621025/************************************************************************/
    9631026
    964 static int TranslateLayer( OGRDataSource *poSrcDS,
    965                            OGRLayer * poSrcLayer,
    966                            OGRDataSource *poDstDS,
    967                            char **papszLCO,
    968                            const char *pszNewLayerName,
    969                            int bTransform,
    970                            OGRSpatialReference *poOutputSRS,
    971                            OGRSpatialReference *poSourceSRS,
    972                            char **papszSelFields,
    973                            int bAppend, int eGType, int bOverwrite,
    974                            double dfMaxSegmentLength)
     1027static int TranslateLayer(
     1028#if GDAL_VERSION_MAJOR >= 2
     1029                          GDALDataset
     1030#else
     1031                          OGRDataSource
     1032#endif
     1033                          *poSrcDS,
     1034                          OGRLayer * poSrcLayer,
     1035#if GDAL_VERSION_MAJOR >= 2
     1036                          GDALDataset
     1037#else
     1038                          OGRDataSource
     1039#endif
     1040                          *poDstDS,
     1041                          char **papszLCO,
     1042                          const char *pszNewLayerName,
     1043                          int bTransform,
     1044                          OGRSpatialReference *poOutputSRS,
     1045                          OGRSpatialReference *poSourceSRS,
     1046                          char **papszSelFields,
     1047                          int bAppend, int eGType, int bOverwrite,
     1048                          double dfMaxSegmentLength)
    9751049               
    9761050{
Note: See TracChangeset for help on using the changeset viewer.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png