public static FdoDataStoreConfiguration FromFile(string xmlFile)
{
using (var fact = new FgfGeometryFactory())
using (var ios = new IoFileStream(xmlFile, "r"))
{
using (var reader = new XmlReader(ios))
{
List<SpatialContextInfo> contexts = new List<SpatialContextInfo>();
using (var scReader = new XmlSpatialContextReader(reader))
{
while (scReader.ReadNext())
{
var sc = new SpatialContextInfo();
sc.CoordinateSystem = scReader.GetCoordinateSystem();
sc.CoordinateSystemWkt = scReader.GetCoordinateSystemWkt();
sc.Description = scReader.GetDescription();
sc.ExtentType = scReader.GetExtentType();
if (sc.ExtentType == OSGeo.FDO.Commands.SpatialContext.SpatialContextExtentType.SpatialContextExtentType_Static)
{
using (var geom = fact.CreateGeometryFromFgf(scReader.GetExtent()))
{
sc.ExtentGeometryText = geom.Text;
}
}
sc.IsActive = scReader.IsActive();
sc.Name = scReader.GetName();
sc.XYTolerance = scReader.GetXYTolerance();
sc.ZTolerance = scReader.GetZTolerance();
contexts.Add(sc);
}
}
ios.Reset();
var schemas = new FeatureSchemaCollection(null);
schemas.ReadXml(ios);
ios.Reset();
var mappings = new PhysicalSchemaMappingCollection();
mappings.ReadXml(ios);
ios.Close();
return new FdoDataStoreConfiguration(schemas, contexts.ToArray(), mappings);
}
}
}