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(); }