コード例 #1
0
        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;
        }
コード例 #2
0
        /// <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;
        }