Example #1
0
FdoIGeometry* FdoXmlPoint::GetFdoGeometry()
{
	FdoPtr<FdoFgfGeometryFactory> factory = FdoFgfGeometryFactory::GetInstance();

	return factory->CreatePoint(m_coordinates->GetDimensionality(),
															m_coordinates->GetDoubleArray()
															);
}
void FdoImportExportTest::AddFeature( FdoIInsert* insertCommand, FdoInt32 idx )
{
    FdoPtr<FdoPropertyValueCollection> propertyValues = insertCommand->GetPropertyValues();
    FdoPtr<FdoDataValue> dataValue;
    FdoPtr<FdoPropertyValue> propertyValue;
    FdoPtr<FdoIConnection> connection = insertCommand->GetConnection();
    bool supportsZ = (FdoPtr<FdoIGeometryCapabilities>(connection->GetGeometryCapabilities())->GetDimensionalities() & FdoDimensionality_Z);

    dataValue = FdoDataValue::Create((FdoInt64) idx);
    propertyValue = AddNewProperty( propertyValues, L"Prop1");
    propertyValue->SetValue(dataValue);

    dataValue = FdoDataValue::Create((FdoString*)FdoStringP::Format(L"Prop2_Val%d",idx));
    propertyValue = AddNewProperty( propertyValues, L"Prop2");
    propertyValue->SetValue(dataValue);

    dataValue = FdoDataValue::Create((FdoString*)FdoStringP::Format(L"SubProp1_Val%d",idx));
    propertyValue = AddNewProperty( propertyValues, L"SubProp1");
    propertyValue->SetValue(dataValue);

    double       coordsBuffer[3];
    int          segCount = 1;

    coordsBuffer[0] = 5 * idx;
    coordsBuffer[1] = 10 * idx;
    coordsBuffer[2] = 0;

    propertyValue = AddNewProperty( propertyValues, L"Geometry");
    FdoPtr<FdoFgfGeometryFactory> gf = FdoFgfGeometryFactory::GetInstance();
    
    FdoPtr<FdoIPoint> point1;
    if ( supportsZ ) 
        point1 = gf->CreatePoint(FdoDimensionality_XY|FdoDimensionality_Z, coordsBuffer);
    else
       point1 = gf->CreatePoint(FdoDimensionality_XY, coordsBuffer);
    
    FdoPtr<FdoByteArray> byteArray = gf->GetFgf(point1);
    FdoPtr<FdoGeometryValue> geometryValue = FdoGeometryValue::Create(byteArray);
    propertyValue->SetValue(geometryValue);

    FdoPtr<FdoIFeatureReader> reader = insertCommand->Execute();
}