FdoByteArray* SpatialContextTest::SerializeExtent( double minX, double minY, double maxX, double maxY ) { // Create a byte array FdoPtr<FdoFgfGeometryFactory> gf = FdoFgfGeometryFactory::GetInstance(); FdoPtr<FdoIEnvelope> env = gf->CreateEnvelopeXY(minX, minY, maxX, maxY ); FdoPtr<FdoIGeometry> geom = gf->CreateGeometry(env); return( gf->GetFgf(geom) ); }
bool FdoXmlSpatialContextReader::ReadNext() { FdoXmlSaxContextP context = FdoXmlSaxContext::Create( mXmlReader ); // Clear out extents for previously read spatial context mExtent = NULL; // Re-initialze the read handler so the next spatial context can be read. mSCHandler->Setup( mXmlFlags ); // Read the next spatial context from XML. mXmlReader->Parse( this, context, true ); context->ThrowErrors(); if ( mSCHandler->mSCName.GetLength() > 0 ) { // A spatial context was found. Convert extents to byte array. FdoPtr<FdoFgfGeometryFactory> gf = FdoFgfGeometryFactory::GetInstance(); FdoPtr<FdoIEnvelope> env = gf->CreateEnvelopeXY( mSCHandler->mMinX, mSCHandler->mMinY, mSCHandler->mMaxX, mSCHandler->mMaxY ); FdoPtr<FdoIGeometry> geom = gf->CreateGeometry(env); mExtent = gf->GetFgf(geom); mSCHandler->mFirst = false; return true; } else { // No spatial context found. We're done reading. return false; } }