本文整理汇总了C++中CFeature::SetShape方法的典型用法代码示例。如果您正苦于以下问题:C++ CFeature::SetShape方法的具体用法?C++ CFeature::SetShape怎么用?C++ CFeature::SetShape使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFeature
的用法示例。
在下文中一共展示了CFeature::SetShape方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ShpReadFeature
Geodatabase::CFeature* CShapefileFeatureClass::ShpReadFeature(long index)
{
Geometry* pGeometry = NULL;
pGeometry = ReadShape(index);
CFeature *pFeature =new CFeature(this,index+1);
pFeature->SetShape(pGeometry);
for( int iField = 0; iField < m_allFields.size();iField++ )
{
// Skip null fields.
if( DBFIsAttributeNULL( m_dbfHandle, index, iField ) )
continue;
switch( m_allFields[iField]->GetType())
{
case Geodatabase::FTYPE_DATE:
{
const char* pszDateValue =
DBFReadStringAttribute(m_dbfHandle,index,iField);
pFeature->m_values[iField].vtype =Geodatabase::FieldValue::VT_DATE;
if( pszDateValue[2] == '/' && pszDateValue[5] == '/'
&& strlen(pszDateValue) >= 10 )
{
pFeature->m_values[iField].m_Var.date.Month =atoi(pszDateValue+0);
pFeature->m_values[iField].m_Var.date.Day = atoi(pszDateValue+3);
pFeature->m_values[iField].m_Var.date.Year = atoi(pszDateValue+6);
}
else
{
int nFullDate = atoi(pszDateValue);
pFeature->m_values[iField].m_Var.date.Year = (int)(nFullDate / 10000);
pFeature->m_values[iField].m_Var.date.Month = (unsigned char)((nFullDate / 100) % 100);
pFeature->m_values[iField].m_Var.date.Day = (unsigned char)(nFullDate % 100);
}
break;
}
case Geodatabase::FTYPE_STRING:
pFeature->m_values[iField].SetString(DBFReadStringAttribute(m_dbfHandle, index,iField ));
break;
case Geodatabase::FTYPE_LONG:
pFeature->m_values[iField].vtype =FieldValue::VT_INT;
pFeature->m_values[iField].m_Var.iVal =DBFReadIntegerAttribute(m_dbfHandle, index,iField );
break;
case Geodatabase::FTYPE_FLOAT:
case Geodatabase::FTYPE_DOUBLE:
pFeature->m_values[iField].vtype =FieldValue::VT_DOUBLE;
pFeature->m_values[iField].m_Var.dVal =DBFReadDoubleAttribute(m_dbfHandle, index,iField );
break;
default:
break;
}
}
return pFeature;
}