本文整理汇总了C++中OGRLinearRing::_importFromWkb方法的典型用法代码示例。如果您正苦于以下问题:C++ OGRLinearRing::_importFromWkb方法的具体用法?C++ OGRLinearRing::_importFromWkb怎么用?C++ OGRLinearRing::_importFromWkb使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OGRLinearRing
的用法示例。
在下文中一共展示了OGRLinearRing::_importFromWkb方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: importFromWkb
OGRErr OGRPolygon::importFromWkb( const unsigned char * pabyData,
int nSize,
OGRwkbVariant eWkbVariant,
int& nBytesConsumedOut )
{
nBytesConsumedOut = -1;
OGRwkbByteOrder eByteOrder = wkbNDR;
int nDataOffset = 0;
// coverity[tainted_data]
OGRErr eErr = oCC.importPreambleFromWkb(this, pabyData, nSize, nDataOffset,
eByteOrder, 4, eWkbVariant);
if( eErr != OGRERR_NONE )
return eErr;
/* -------------------------------------------------------------------- */
/* Get the rings. */
/* -------------------------------------------------------------------- */
for( int iRing = 0; iRing < oCC.nCurveCount; iRing++ )
{
OGRLinearRing* poLR = new OGRLinearRing();
oCC.papoCurves[iRing] = poLR;
int nBytesConsumedRing = -1;
eErr = poLR->_importFromWkb( eByteOrder, flags,
pabyData + nDataOffset,
nSize,
nBytesConsumedRing );
if( eErr != OGRERR_NONE )
{
delete oCC.papoCurves[iRing];
oCC.nCurveCount = iRing;
return eErr;
}
CPLAssert( nBytesConsumedRing > 0 );
if( nSize != -1 )
{
CPLAssert( nSize >= nBytesConsumedRing );
nSize -= nBytesConsumedRing;
}
nDataOffset += nBytesConsumedRing;
}
nBytesConsumedOut = nDataOffset;
return OGRERR_NONE;
}
示例2: importFromWkb
OGRErr OGRPolygon::importFromWkb( unsigned char * pabyData,
int nSize,
OGRwkbVariant eWkbVariant )
{
OGRwkbByteOrder eByteOrder = wkbNDR;
int nDataOffset = 0;
// coverity[tainted_data]
OGRErr eErr = oCC.importPreambuleFromWkb(this, pabyData, nSize, nDataOffset,
eByteOrder, 4, eWkbVariant);
if( eErr != OGRERR_NONE )
return eErr;
/* -------------------------------------------------------------------- */
/* Get the rings. */
/* -------------------------------------------------------------------- */
for( int iRing = 0; iRing < oCC.nCurveCount; iRing++ )
{
OGRLinearRing* poLR = new OGRLinearRing();
oCC.papoCurves[iRing] = poLR;
eErr = poLR->_importFromWkb( eByteOrder, flags,
pabyData + nDataOffset,
nSize );
if( eErr != OGRERR_NONE )
{
delete oCC.papoCurves[iRing];
oCC.nCurveCount = iRing;
return eErr;
}
if( nSize != -1 )
nSize -= poLR->_WkbSize( flags );
nDataOffset += poLR->_WkbSize( flags );
}
return OGRERR_NONE;
}