您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GetLayerDefn函数代码示例

51自学网 2021-06-01 21:10:00
  C++
这篇教程C++ GetLayerDefn函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GetLayerDefn函数的典型用法代码示例。如果您正苦于以下问题:C++ GetLayerDefn函数的具体用法?C++ GetLayerDefn怎么用?C++ GetLayerDefn使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GetLayerDefn函数的24个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: CPLSetThreadLocalConfigOption

void OGRILI1Layer::JoinGeomLayers(){    bGeomsJoined = TRUE;    int bResetConfigOption = FALSE;    if (EQUAL(CPLGetConfigOption("OGR_ARC_STEPSIZE", ""), ""))    {        bResetConfigOption = TRUE;        CPLSetThreadLocalConfigOption("OGR_ARC_STEPSIZE", "0.96");    }    for (GeomFieldInfos::const_iterator it = oGeomFieldInfos.begin(); it != oGeomFieldInfos.end(); ++it)    {        OGRFeatureDefn* geomFeatureDefn = it->second.geomTable;        if (geomFeatureDefn)        {            CPLDebug( "OGR_ILI", "Join geometry table %s of field '%s'", geomFeatureDefn->GetName(), it->first.c_str() );            OGRILI1Layer* poGeomLayer = poDS->GetLayerByName(geomFeatureDefn->GetName());            int nGeomFieldIndex = GetLayerDefn()->GetGeomFieldIndex(it->first.c_str());            if (it->second.iliGeomType == "Surface")            {                JoinSurfaceLayer(poGeomLayer, nGeomFieldIndex);            }            else if (it->second.iliGeomType == "Area")            {                CPLString pointField = it->first + "__Point";                int nPointFieldIndex = GetLayerDefn()->GetGeomFieldIndex(pointField.c_str());                PolygonizeAreaLayer(poGeomLayer, nGeomFieldIndex, nPointFieldIndex);            }        }    }    if( bResetConfigOption )        CPLSetThreadLocalConfigOption("OGR_ARC_STEPSIZE", NULL);}
开发者ID:garnertb,项目名称:gdal,代码行数:34,


示例2: CPLDebug

void OGRILI1Layer::JoinSurfaceLayer( OGRILI1Layer* poSurfaceLineLayer, int nSurfaceFieldIndex ){    CPLDebug( "OGR_ILI", "Joining surface layer %s with geometries", GetLayerDefn()->GetName());    OGRwkbGeometryType geomType = GetLayerDefn()->GetGeomFieldDefn(nSurfaceFieldIndex)->GetType();    poSurfaceLineLayer->ResetReading();    while (OGRFeature *linefeature = poSurfaceLineLayer->GetNextFeatureRef()) {        //OBJE entries with same _RefTID are polygon rings of same feature        //TODO: non-numeric _RefTID/FID is not supported yet!        GIntBig reftid = linefeature->GetFieldAsInteger64(1); //_RefTID        OGRFeature *feature = GetFeatureRef((int)reftid);        if (feature) {            OGRCurvePolygon *poly;            if (feature->GetGeomFieldRef(nSurfaceFieldIndex)) {                CPLDebug( "OGR_ILI", "Adding ring to FID " CPL_FRMT_GIB, reftid );                poly = (OGRCurvePolygon *)feature->GetGeomFieldRef(nSurfaceFieldIndex);            } else {                poly = (geomType == wkbPolygon) ? new OGRPolygon() : new OGRCurvePolygon();                feature->SetGeomFieldDirectly(nSurfaceFieldIndex, poly);            }            OGRMultiCurve *lines = (OGRMultiCurve*)linefeature->GetGeomFieldRef(0);            for( int i = 0; i < lines->getNumGeometries(); i++ ) {                OGRCurve *line = (OGRCurve*)lines->getGeometryRef(i);                OGRCurve *ring = (geomType == wkbPolygon) ?                                 OGRCurve::CastToLinearRing((OGRCurve*)line->clone()) :                                 (OGRCurve*)line->clone();                poly->addRingDirectly(ring);            }        } else {            CPLError(CE_Warning, CPLE_AppDefined, "Couldn't join feature FID " CPL_FRMT_GIB, reftid );        }    }    ResetReading();    poSurfaceLineLayer = 0;}
开发者ID:garnertb,项目名称:gdal,代码行数:35,


示例3: GetLayerDefn

void OGRPGResultLayer::SetSpatialFilter( int iGeomField, OGRGeometry * poGeomIn ){    if( iGeomField < 0 || iGeomField >= GetLayerDefn()->GetGeomFieldCount() ||        GetLayerDefn()->GetGeomFieldDefn(iGeomField)->GetType() == wkbNone )    {        if( iGeomField != 0 )        {            CPLError(CE_Failure, CPLE_AppDefined,                     "Invalid geometry field index : %d", iGeomField);        }        return;    }    m_iGeomFieldFilter = iGeomField;    OGRPGGeomFieldDefn* poGeomFieldDefn =        poFeatureDefn->myGetGeomFieldDefn(m_iGeomFieldFilter);    if( InstallFilter( poGeomIn ) )    {        if ( poGeomFieldDefn->ePostgisType == GEOM_TYPE_GEOMETRY ||             poGeomFieldDefn->ePostgisType == GEOM_TYPE_GEOGRAPHY )        {            if( m_poFilterGeom != NULL)            {                char szBox3D_1[128];                char szBox3D_2[128];                OGREnvelope  sEnvelope;                m_poFilterGeom->getEnvelope( &sEnvelope );                if( poGeomFieldDefn->ePostgisType == GEOM_TYPE_GEOGRAPHY )                {                    if( sEnvelope.MinX < -180.0 )                        sEnvelope.MinX = -180.0;                    if( sEnvelope.MinY < -90.0 )                        sEnvelope.MinY = -90.0;                    if( sEnvelope.MaxX > 180.0 )                        sEnvelope.MaxX = 180.0;                    if( sEnvelope.MaxY > 90.0 )                        sEnvelope.MaxY = 90.0;                }                CPLsnprintf(szBox3D_1, sizeof(szBox3D_1), "%.18g %.18g", sEnvelope.MinX, sEnvelope.MinY);                CPLsnprintf(szBox3D_2, sizeof(szBox3D_2), "%.18g %.18g", sEnvelope.MaxX, sEnvelope.MaxY);                osWHERE.Printf("WHERE %s && %s('BOX3D(%s, %s)'::box3d,%d) ",                               OGRPGEscapeColumnName(poGeomFieldDefn->GetNameRef()).c_str(),                               (poDS->sPostGISVersion.nMajor >= 2) ? "ST_SetSRID" : "SetSRID",                               szBox3D_1, szBox3D_2, poGeomFieldDefn->nSRSId );            }            else            {                osWHERE = "";            }            BuildFullQueryStatement();        }        ResetReading();    }}
开发者ID:drownedout,项目名称:datamap,代码行数:59,


示例4: GetLayerDefn

void OGRUnionLayer::AutoWarpLayerIfNecessary(int iLayer){    if( !pabCheckIfAutoWrap[iLayer] )    {        pabCheckIfAutoWrap[iLayer] = TRUE;        for(int i=0; i<GetLayerDefn()->GetGeomFieldCount();i++)        {            OGRSpatialReference* poSRS = GetLayerDefn()->GetGeomFieldDefn(i)->GetSpatialRef();            if( poSRS != NULL )                poSRS->Reference();            OGRFeatureDefn* poSrcFeatureDefn = papoSrcLayers[iLayer]->GetLayerDefn();            int iSrcGeomField = poSrcFeatureDefn->GetGeomFieldIndex(                    GetLayerDefn()->GetGeomFieldDefn(i)->GetNameRef());            if( iSrcGeomField >= 0 )            {                OGRSpatialReference* poSRS2 =                    poSrcFeatureDefn->GetGeomFieldDefn(iSrcGeomField)->GetSpatialRef();                if( (poSRS == NULL && poSRS2 != NULL) ||                    (poSRS != NULL && poSRS2 == NULL) )                {                    CPLError(CE_Warning, CPLE_AppDefined,                            "SRS of geometry field '%s' layer %s not consistent with UnionLayer SRS",                            GetLayerDefn()->GetGeomFieldDefn(i)->GetNameRef(),                            papoSrcLayers[iLayer]->GetName());                }                else if (poSRS != NULL && poSRS2 != NULL &&                        poSRS != poSRS2 && !poSRS->IsSame(poSRS2))                {                    CPLDebug("VRT", "SRS of geometry field '%s' layer %s not consistent with UnionLayer SRS. "                            "Trying auto warping",                            GetLayerDefn()->GetGeomFieldDefn(i)->GetNameRef(),                            papoSrcLayers[iLayer]->GetName());                    OGRCoordinateTransformation* poCT =                        OGRCreateCoordinateTransformation( poSRS2, poSRS );                    OGRCoordinateTransformation* poReversedCT = (poCT != NULL) ?                        OGRCreateCoordinateTransformation( poSRS, poSRS2 ) : NULL;                    if( poReversedCT != NULL )                        papoSrcLayers[iLayer] = new OGRWarpedLayer(                                    papoSrcLayers[iLayer], iSrcGeomField, TRUE, poCT, poReversedCT);                    else                    {                        CPLError(CE_Warning, CPLE_AppDefined,                                 "AutoWarpLayerIfNecessary failed to create "                                 "poCT or poReversedCT.");                        if ( poCT != NULL )                            delete poCT;                    }                }            }            if( poSRS != NULL )                poSRS->Release();        }    }}
开发者ID:bbradbury,项目名称:lib_gdal,代码行数:58,


示例5: GetLayerDefn

OGRFeature *OGRGFTLayer::GetNextFeature(){    GetLayerDefn();    while( true )    {        if (nNextInSeq < nOffset ||            nNextInSeq >= nOffset + static_cast<int>(aosRows.size()))        {            if (bEOF)                return nullptr;            nOffset += static_cast<int>(aosRows.size());            if (!FetchNextRows())                return nullptr;        }        OGRFeature *poFeature = GetNextRawFeature();        if (poFeature == nullptr)            return nullptr;        if((m_poFilterGeom == nullptr            || FilterGeometry( poFeature->GetGeometryRef() ) )        && (m_poAttrQuery == nullptr            || m_poAttrQuery->Evaluate( poFeature )) )        {            return poFeature;        }        else            delete poFeature;    }}
开发者ID:koordinates,项目名称:gdal,代码行数:32,


示例6: strcmp

OGRErr OGRUnionLayer::SetAttributeFilter( const char * pszAttributeFilterIn ){    if( pszAttributeFilterIn == NULL && pszAttributeFilter == NULL)        return OGRERR_NONE;    if( pszAttributeFilterIn != NULL && pszAttributeFilter != NULL &&        strcmp(pszAttributeFilterIn, pszAttributeFilter) == 0)        return OGRERR_NONE;    if( poFeatureDefn == NULL ) GetLayerDefn();    bAttrFilterPassThroughValue = -1;    OGRErr eErr = OGRLayer::SetAttributeFilter(pszAttributeFilterIn);    if( eErr != OGRERR_NONE )        return eErr;    CPLFree(pszAttributeFilter);    pszAttributeFilter = pszAttributeFilterIn ?                                CPLStrdup(pszAttributeFilterIn) : NULL;    if( iCurLayer >= 0 && iCurLayer < nSrcLayers)        ApplyAttributeFilterToSrcLayer(iCurLayer);    return OGRERR_NONE;}
开发者ID:bbradbury,项目名称:lib_gdal,代码行数:25,


示例7: FlushDeferedInsert

OGRFeature* OGRCARTODBTableLayer::GetFeature( GIntBig nFeatureId ){    if( bDeferedCreation && RunDeferedCreationIfNecessary() != OGRERR_NONE )        return NULL;    FlushDeferedInsert();    GetLayerDefn();        if( osFIDColName.size() == 0 )        return OGRCARTODBLayer::GetFeature(nFeatureId);    CPLString osSQL = osSELECTWithoutWHERE;    osSQL += " WHERE ";    osSQL += OGRCARTODBEscapeIdentifier(osFIDColName).c_str();    osSQL += " = ";    osSQL += CPLSPrintf(CPL_FRMT_GIB, nFeatureId);    json_object* poObj = poDS->RunSQL(osSQL);    json_object* poRowObj = OGRCARTODBGetSingleRow(poObj);    if( poRowObj == NULL )    {        if( poObj != NULL )            json_object_put(poObj);        return OGRCARTODBLayer::GetFeature(nFeatureId);    }    OGRFeature* poFeature = BuildFeature(poRowObj);    json_object_put(poObj);    return poFeature;}
开发者ID:rashadkm,项目名称:lib_gdal,代码行数:32,


示例8: GetLayerDefn

OGRFeature *OGRGFTLayer::GetNextFeature(){    OGRFeature  *poFeature;    GetLayerDefn();    while(TRUE)    {        if (nNextInSeq < nOffset ||            nNextInSeq >= nOffset + (int)aosRows.size())        {            if (bEOF)                return NULL;            nOffset += aosRows.size();            if (!FetchNextRows())                return NULL;        }        poFeature = GetNextRawFeature();        if (poFeature == NULL)            return NULL;        if((m_poFilterGeom == NULL            || FilterGeometry( poFeature->GetGeometryRef() ) )        && (m_poAttrQuery == NULL            || m_poAttrQuery->Evaluate( poFeature )) )        {            return poFeature;        }        else            delete poFeature;    }}
开发者ID:samalone,项目名称:gdal-ios,代码行数:34,


示例9: CPLAssert

void OGRGeoJSONLayer::AddFeature( OGRFeature* poFeature ){    CPLAssert( NULL != poFeature );    // NOTE - mloskot:    // Features may not be sorted according to FID values.    // TODO: Should we check if feature already exists?    // TODO: Think about sync operation, upload, etc.    OGRFeature* poNewFeature = NULL;    poNewFeature = poFeature->Clone();    if( -1 == poNewFeature->GetFID() )    {        int nFID = static_cast<int>(seqFeatures_.size());        poNewFeature->SetFID( nFID );        // TODO - mlokot: We need to redesign creation of FID column        int nField = poNewFeature->GetFieldIndex( DefaultFIDColumn );        if( -1 != nField && GetLayerDefn()->GetFieldDefn(nField)->GetType() == OFTInteger )        {            poNewFeature->SetField( nField, nFID );        }    }    seqFeatures_.push_back( poNewFeature );}
开发者ID:0004c,项目名称:node-gdal,代码行数:29,


示例10: GetExtent

OGRErr OGRLayer::GetExtent(OGREnvelope *psExtent, int bForce ){    OGRFeature  *poFeature;    OGREnvelope oEnv;    GBool       bExtentSet = FALSE;    /* -------------------------------------------------------------------- */    /*      If this layer has a none geometry type, then we can             */    /*      reasonably assume there are not extents available.              */    /* -------------------------------------------------------------------- */    if( GetLayerDefn()->GetGeomType() == wkbNone )    {        psExtent->MinX = 0.0;        psExtent->MaxX = 0.0;        psExtent->MinY = 0.0;        psExtent->MaxY = 0.0;        return OGRERR_FAILURE;    }    /* -------------------------------------------------------------------- */    /*      If not forced, we should avoid having to scan all the           */    /*      features and just return a failure.                             */    /* -------------------------------------------------------------------- */    if( !bForce )        return OGRERR_FAILURE;    /* -------------------------------------------------------------------- */    /*      OK, we hate to do this, but go ahead and read through all       */    /*      the features to collect geometries and build extents.           */    /* -------------------------------------------------------------------- */    ResetReading();    while( (poFeature = GetNextFeature()) != NULL )    {        OGRGeometry *poGeom = poFeature->GetGeometryRef();        if (poGeom && !bExtentSet)        {            poGeom->getEnvelope(psExtent);            bExtentSet = TRUE;        }        else if (poGeom)        {            poGeom->getEnvelope(&oEnv);            if (oEnv.MinX < psExtent->MinX)                psExtent->MinX = oEnv.MinX;            if (oEnv.MinY < psExtent->MinY)                psExtent->MinY = oEnv.MinY;            if (oEnv.MaxX > psExtent->MaxX)                psExtent->MaxX = oEnv.MaxX;            if (oEnv.MaxY > psExtent->MaxY)                psExtent->MaxY = oEnv.MaxY;        }        delete poFeature;    }    ResetReading();    return (bExtentSet ? OGRERR_NONE : OGRERR_FAILURE);}
开发者ID:Chaduke,项目名称:bah.mod,代码行数:59,


示例11: GetLayerDefn

GIntBig OGRSVGLayer::GetFeatureCount( int bForce ){    if (m_poAttrQuery != NULL || m_poFilterGeom != NULL)        return OGRLayer::GetFeatureCount(bForce);    GetLayerDefn();    return nTotalFeatures;}
开发者ID:bbradbury,项目名称:lib_gdal,代码行数:9,


示例12: CPLDebug

void OGRILI1Layer::JoinSurfaceLayer(){    if (poSurfacePolyLayer == 0) return;    CPLDebug( "OGR_ILI", "Joining surface layer %s with geometries", GetLayerDefn()->GetName());    GetLayerDefn()->SetGeomType(poSurfacePolyLayer->GetLayerDefn()->GetGeomType());    ResetReading();    while (OGRFeature *feature = GetNextFeatureRef())    {        OGRFeature *polyfeature = poSurfacePolyLayer->GetFeatureRef(feature->GetFID());        if (polyfeature) {            feature->SetGeometry(polyfeature->GetGeometryRef());        }    }    ResetReading();    poSurfacePolyLayer = 0;}
开发者ID:brunosimoes,项目名称:WorldWind,代码行数:18,


示例13: GetLayerDefn

OGRErr OGRGFTTableLayer::DeleteFeature( long nFID ){    GetLayerDefn();    if (!poDS->IsReadWrite())    {        CPLError(CE_Failure, CPLE_AppDefined,                 "Operation not available in read-only mode");        return OGRERR_FAILURE;    }    if (osTableId.size() == 0)    {        CPLError(CE_Failure, CPLE_NotSupported,                "Cannot delete feature in non-created table");        return OGRERR_FAILURE;    }    if (poDS->GetAuth().size() == 0)    {        CPLError(CE_Failure, CPLE_AppDefined,                 "Operation not available in unauthenticated mode");        return OGRERR_FAILURE;    }    CPLString      osCommand;    osCommand += "DELETE FROM ";    osCommand += osTableId;    osCommand += " WHERE ROWID = '";    osCommand += CPLSPrintf("%ld", nFID);    osCommand += "'";    //CPLDebug("GFT", "%s",  osCommand.c_str());    CPLHTTPResult * psResult = poDS->RunSQL(osCommand);    if (psResult == NULL)    {        CPLError(CE_Failure, CPLE_AppDefined, "Feature deletion failed");        return OGRERR_FAILURE;    }    char* pszLine = (char*) psResult->pabyData;    if (pszLine == NULL ||        strncmp(pszLine, "OK", 2) != 0 ||        psResult->pszErrBuf != NULL)    {        CPLError(CE_Failure, CPLE_AppDefined, "Feature deletion failed");        CPLHTTPDestroyResult(psResult);        return OGRERR_FAILURE;    }    CPLHTTPDestroyResult(psResult);    return OGRERR_NONE;}
开发者ID:Joe-xXx,项目名称:gdal,代码行数:56,


示例14: GetLayerDefn

const char *OGRDB2Layer::GetFIDColumn(){    GetLayerDefn();    if( pszFIDColumn != nullptr )        return pszFIDColumn;    else        return "";}
开发者ID:OSGeo,项目名称:gdal,代码行数:10,


示例15: GetLayerDefn

int OGROCIWritableLayer::FindFieldIndex( const char *pszFieldName, int bExactMatch ){  int iField = GetLayerDefn()->GetFieldIndex( pszFieldName );  if( !bExactMatch && iField < 0 )  {      // try laundered version      OGROCISession *poSession = poDS->GetSession();      char *pszSafeName = CPLStrdup( pszFieldName );      poSession->CleanName( pszSafeName );      iField = GetLayerDefn()->GetFieldIndex( pszSafeName );      CPLFree( pszSafeName );  }  return iField;}
开发者ID:AbdelghaniDr,项目名称:mirror,代码行数:19,


示例16: GetLayerDefn

const char *OGRMSSQLSpatialLayer::GetGeometryColumn() {    GetLayerDefn();    if( pszGeomColumn != NULL )        return pszGeomColumn;    else        return "";}
开发者ID:wangfeilong321,项目名称:vdpm,代码行数:10,


示例17: SetSpatialFilter

void OGRWarpedLayer::SetSpatialFilter( int iGeomField, OGRGeometry *poGeom ){    if( iGeomField < 0 || iGeomField >= GetLayerDefn()->GetGeomFieldCount() )    {        CPLError(CE_Failure, CPLE_AppDefined,                    "Invalid geometry field index : %d", iGeomField);        return;    }    m_iGeomFieldFilter = iGeomField;    if( InstallFilter( poGeom ) )        ResetReading();    if( m_iGeomFieldFilter == m_iGeomField )    {        if( poGeom == NULL || m_poReversedCT == NULL )        {            m_poDecoratedLayer->SetSpatialFilter(m_iGeomFieldFilter,                                                NULL);        }        else        {            OGREnvelope sEnvelope;            poGeom->getEnvelope(&sEnvelope);            if( CPLIsInf(sEnvelope.MinX) && CPLIsInf(sEnvelope.MinY) &&                CPLIsInf(sEnvelope.MaxX) && CPLIsInf(sEnvelope.MaxY) )            {                m_poDecoratedLayer->SetSpatialFilterRect(m_iGeomFieldFilter,                                                        sEnvelope.MinX,                                                        sEnvelope.MinY,                                                        sEnvelope.MaxX,                                                        sEnvelope.MaxY);            }            else if( ReprojectEnvelope(&sEnvelope, m_poReversedCT) )            {                m_poDecoratedLayer->SetSpatialFilterRect(m_iGeomFieldFilter,                                                        sEnvelope.MinX,                                                        sEnvelope.MinY,                                                        sEnvelope.MaxX,                                                        sEnvelope.MaxY);            }            else            {                m_poDecoratedLayer->SetSpatialFilter(m_iGeomFieldFilter,                                                    NULL);            }        }    }    else    {        m_poDecoratedLayer->SetSpatialFilter(m_iGeomFieldFilter,                                             poGeom);    }}
开发者ID:0004c,项目名称:node-gdal,代码行数:54,


示例18: GetLayerDefn

OGRFeature * OGRGFTTableLayer::GetFeature( GIntBig nFID ){    GetLayerDefn();    CPLString osSQL("SELECT ROWID");    for(int i=0;i<poFeatureDefn->GetFieldCount();i++)    {        osSQL += ",";        const char* pszFieldName =            poFeatureDefn->GetFieldDefn(i)->GetNameRef();        osSQL += EscapeAndQuote(pszFieldName);    }    if (bHiddenGeometryField)    {        osSQL += ",";        osSQL += EscapeAndQuote(GetGeometryColumn());    }    osSQL += " FROM ";    osSQL += osTableId;    osSQL += CPLSPrintf(" WHERE ROWID='" CPL_FRMT_GIB "'", nFID);    CPLPushErrorHandler(CPLQuietErrorHandler);    CPLHTTPResult * psResult = poDS->RunSQL(osSQL);    CPLPopErrorHandler();    if (psResult == NULL)        return NULL;    char* pszLine = (char*) psResult->pabyData;    if (pszLine == NULL || psResult->pszErrBuf != NULL)    {        CPLHTTPDestroyResult(psResult);        return NULL;    }    /* skip header line */    pszLine = OGRGFTGotoNextLine(pszLine);    if (pszLine == NULL || pszLine[0] == 0)    {        CPLHTTPDestroyResult(psResult);        return NULL;    }    int nLen = (int)strlen(pszLine);    if (nLen > 0 && pszLine[nLen-1] == '/n')        pszLine[nLen-1] = '/0';    OGRFeature* poFeature = BuildFeatureFromSQL(pszLine);    CPLHTTPDestroyResult(psResult);    return poFeature;}
开发者ID:rashadkm,项目名称:lib_gdal,代码行数:54,


示例19: memcpy

OGRErr OGRUnionLayer::GetExtent(int iGeomField, OGREnvelope *psExtent, int bForce){    if( iGeomField >= 0 && iGeomField < nGeomFields &&        papoGeomFields[iGeomField]->sStaticEnvelope.IsInit() )    {        memcpy(psExtent, &papoGeomFields[iGeomField]->sStaticEnvelope, sizeof(OGREnvelope));        return OGRERR_NONE;    }    if( iGeomField < 0 || iGeomField >= GetLayerDefn()->GetGeomFieldCount() )    {        CPLError(CE_Failure, CPLE_AppDefined,                     "Invalid geometry field index : %d", iGeomField);        return OGRERR_FAILURE;    }    int bInit = FALSE;    for(int i = 0; i < nSrcLayers; i++)    {        AutoWarpLayerIfNecessary(i);        int iSrcGeomField = papoSrcLayers[i]->GetLayerDefn()->GetGeomFieldIndex(            GetLayerDefn()->GetGeomFieldDefn(iGeomField)->GetNameRef());        if( iSrcGeomField >= 0 )        {            if( !bInit )            {                if( papoSrcLayers[i]->GetExtent(iSrcGeomField, psExtent, bForce) == OGRERR_NONE )                    bInit = TRUE;            }            else            {                OGREnvelope sExtent;                if( papoSrcLayers[i]->GetExtent(iSrcGeomField, &sExtent, bForce) == OGRERR_NONE )                {                    psExtent->Merge(sExtent);                }            }        }    }    return (bInit) ? OGRERR_NONE : OGRERR_FAILURE;}
开发者ID:bbradbury,项目名称:lib_gdal,代码行数:41,


示例20: OGRFeature

OGRFeature * OGRLayerWithTransaction::GetFeature( GIntBig nFID ){    if( !m_poDecoratedLayer ) return NULL;    OGRFeature* poSrcFeature = m_poDecoratedLayer->GetFeature(nFID);    if( !poSrcFeature )        return NULL;    OGRFeature* poFeature = new OGRFeature(GetLayerDefn());    poFeature->SetFrom(poSrcFeature);    poFeature->SetFID(poSrcFeature->GetFID());    delete poSrcFeature;    return poFeature;}
开发者ID:miccferr,项目名称:wmshp-electron,代码行数:12,


示例21: GetLayerDefn

OGRErr OGRLayer::ReorderField( int iOldFieldPos, int iNewFieldPos ){    OGRErr eErr;    int nFieldCount = GetLayerDefn()->GetFieldCount();    if (iOldFieldPos < 0 || iOldFieldPos >= nFieldCount)    {        CPLError( CE_Failure, CPLE_NotSupported,                  "Invalid field index");        return OGRERR_FAILURE;    }    if (iNewFieldPos < 0 || iNewFieldPos >= nFieldCount)    {        CPLError( CE_Failure, CPLE_NotSupported,                  "Invalid field index");        return OGRERR_FAILURE;    }    if (iNewFieldPos == iOldFieldPos)        return OGRERR_NONE;    int* panMap = (int*) CPLMalloc(sizeof(int) * nFieldCount);    int i;    if (iOldFieldPos < iNewFieldPos)    {        /* "0","1","2","3","4" (1,3) -> "0","2","3","1","4" */        for(i=0;i<iOldFieldPos;i++)            panMap[i] = i;        for(;i<iNewFieldPos;i++)            panMap[i] = i + 1;        panMap[iNewFieldPos] = iOldFieldPos;        for(i=iNewFieldPos+1;i<nFieldCount;i++)            panMap[i] = i;    }    else    {        /* "0","1","2","3","4" (3,1) -> "0","3","1","2","4" */        for(i=0;i<iNewFieldPos;i++)            panMap[i] = i;        panMap[iNewFieldPos] = iOldFieldPos;        for(i=iNewFieldPos+1;i<=iOldFieldPos;i++)            panMap[i] = i - 1;        for(;i<nFieldCount;i++)            panMap[i] = i;    }    eErr = ReorderFields(panMap);    CPLFree(panMap);    return eErr;}
开发者ID:AsherBond,项目名称:MondocosmOS,代码行数:53,


示例22: GetLayerDefn

void OGRCARTODBTableLayer::SetSpatialFilter( int iGeomField, OGRGeometry * poGeomIn ){    if( iGeomField < 0 || iGeomField >= GetLayerDefn()->GetGeomFieldCount() ||        GetLayerDefn()->GetGeomFieldDefn(iGeomField)->GetType() == wkbNone )    {        if( iGeomField != 0 )        {            CPLError(CE_Failure, CPLE_AppDefined,                     "Invalid geometry field index : %d", iGeomField);        }        return;    }    m_iGeomFieldFilter = iGeomField;    if( InstallFilter( poGeomIn ) )    {        BuildWhere();        ResetReading();    }}
开发者ID:rashadkm,项目名称:lib_gdal,代码行数:22,


示例23: feature

/*!  /brief Get feature (private)    /return pointer to OGRFeature  /return NULL not found*/OGRFeature *OGRVFKLayer::GetFeature(VFKFeature *poVFKFeature){    OGRGeometry *poGeom;        /* skip feature with unknown geometry type */    if (poVFKFeature->GetGeometryType() == wkbUnknown)	return NULL;        /* get features geometry */    poGeom = CreateGeometry(poVFKFeature);    if (poGeom != NULL)	poGeom->assignSpatialReference(poSRS);        /* does it satisfy the spatial query, if there is one? */    if (m_poFilterGeom != NULL && poGeom && !FilterGeometry(poGeom)) {	return NULL;    }        /* convert the whole feature into an OGRFeature */    OGRFeature *poOGRFeature = new OGRFeature(GetLayerDefn());    poOGRFeature->SetFID(poVFKFeature->GetFID());    // poOGRFeature->SetFID(++m_iNextFeature);        for (int iField = 0; iField < poDataBlock->GetPropertyCount(); iField++) {	if (poVFKFeature->GetProperty(iField)->IsNull())	    continue;	OGRFieldType fType = poOGRFeature->GetDefnRef()->GetFieldDefn(iField)->GetType();	if (fType == OFTInteger) 	    poOGRFeature->SetField(iField,				   poVFKFeature->GetProperty(iField)->GetValueI());	else if (fType == OFTReal)	    poOGRFeature->SetField(iField,				   poVFKFeature->GetProperty(iField)->GetValueD());	else	    poOGRFeature->SetField(iField,				   poVFKFeature->GetProperty(iField)->GetValueS());    }        /* test against the attribute query */    if (m_poAttrQuery != NULL &&	!m_poAttrQuery->Evaluate(poOGRFeature)) {	delete poOGRFeature;	return NULL;    }        if (poGeom)	poOGRFeature->SetGeometryDirectly(poGeom->clone());        return poOGRFeature;}
开发者ID:AsherBond,项目名称:MondocosmOS,代码行数:56,


示例24: CPLGetConfigOption

GIntBig OGRXLSLayer::GetFeatureCount( int bForce ){    if( m_poAttrQuery == nullptr /* && m_poFilterGeom == NULL */ )    {        const char* pszXLSHeaders = CPLGetConfigOption("OGR_XLS_HEADERS", "");        if(EQUAL(pszXLSHeaders, "DISABLE"))            return nRows;        GetLayerDefn();        return bFirstLineIsHeaders ? nRows - 1 : nRows;    }    return OGRLayer::GetFeatureCount(bForce);}
开发者ID:OSGeo,项目名称:gdal,代码行数:14,



注:本文中的GetLayerDefn函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GetLayout函数代码示例
C++ GetLayer函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。