public NetworkDataset(string configXML, IDataset osmDataset, string ndsName, IGPMessages messages, ITrackCancel trackCancel) { _xml = new NetworkDatasetXML(configXML, RESMGR); _osmDataset = osmDataset; _ndsName = ndsName; _messages = messages; _trackCancel = trackCancel; IDataElement deOSM = GPUtil.MakeDataElementFromNameObject(_osmDataset.FullName); _dsPath = deOSM.CatalogPath; _osmLineName = _osmDataset.Name + "_osm_ln"; _osmLinePath = _dsPath + "\\" + _osmLineName; _osmPointName = _osmDataset.Name + "_osm_pt"; _osmPointPath = _dsPath + "\\" + _osmPointName; // Get the extent from the point feature class // NOTE: the feature dataset is not used for this because exceptions occur (SDE only) // if a feature class was recently deleted from the feature dataset. IFeatureClass fcPoint = ((IFeatureWorkspace)_osmDataset.Workspace).OpenFeatureClass(_osmPointName); IGeoDataset gds = (IGeoDataset)fcPoint; _extent = gds.Extent; _spatialReference = gds.SpatialReference; }
/// <summary>IDisposable - dispose of open assets</summary> public void Dispose() { _xml = null; _osmDataset = null; _messages = null; _trackCancel = null; if (_edgeSources != null) { foreach (var efs in _edgeSources) { ComReleaser.ReleaseCOMObject(efs); } _edgeSources.Clear(); _edgeSources = null; } if (_junctionSources != null) { foreach (var jfs in _junctionSources) { ComReleaser.ReleaseCOMObject(jfs); } _junctionSources.Clear(); _junctionSources = null; } ComReleaser.ReleaseCOMObject(_turnSource); _turnSource = null; if (_networkAttrs != null) { foreach (var na in _networkAttrs) { ComReleaser.ReleaseCOMObject(na); } _networkAttrs.Clear(); _networkAttrs = null; } ComReleaser.ReleaseCOMObject(_networkDataset); _networkDataset = null; }