/// <summary> /// Resolves the geometry factory. /// </summary> /// <param name="referenceSystem">The reference system.</param> /// <returns>The factory for producing geometries.</returns> protected IGeometryFactory ResolveFactory(IReferenceSystem referenceSystem) { if (_factory == null) { if (_factoryType == null) { _factory = FactoryRegistry.GetFactory <IGeometryFactory>(referenceSystem); } else { _factory = (IGeometryFactory)FactoryRegistry.GetFactory(_factoryType, referenceSystem); } } if (referenceSystem != null && !_factory.ReferenceSystem.Equals(referenceSystem)) { _factory = (IGeometryFactory)FactoryRegistry.GetFactory(_factory.GetType(), referenceSystem); } return(_factory); }