/// <summary>Adds turn restriction feature class to network dataset</summary> private void ExtractTurnRestrictions() { string turnFeatureClass = GetFullClassName(_xml.TurnFeatureClassName()); if (string.IsNullOrEmpty(turnFeatureClass)) { return; } INetworkDataset nds = null; try { nds = CreateTempNDS(); ((INetworkBuild)nds).BuildNetwork(_extent); NetworkTurns nt = new NetworkTurns(turnFeatureClass, _osmDataset, nds); nt.TaskManager = _taskManager; nt.OsmPointFeatureClass = ((IFeatureWorkspace)_osmDataset.Workspace).OpenFeatureClass(_osmPointName); nt.OsmEdgeFeatureClasses = _edgeSources .OfType <INetworkSource>() .Select(ns => ((IFeatureWorkspace)_osmDataset.Workspace).OpenFeatureClass(ns.Name)) .ToList(); IFeatureClass fc = ((IFeatureWorkspace)_osmDataset.Workspace).OpenFeatureClass(_osmLineName); nt.OsmExtVersion = fc.OSMExtensionVersion(); _turnSource = nt.ExtractTurnRestrictions(); } finally { if (nds != null) { ((IDataset)nds).Delete(); ComReleaser.ReleaseCOMObject(nds); } } }
/// <summary>Adds turn restriction feature class to network dataset</summary> private void ExtractTurnRestrictions() { string turnFeatureClass = GetFullClassName(_xml.TurnFeatureClassName()); if (string.IsNullOrEmpty(turnFeatureClass)) return; INetworkDataset nds = null; try { nds = CreateTempNDS(); ((INetworkBuild)nds).BuildNetwork(_extent); NetworkTurns nt = new NetworkTurns(turnFeatureClass, _osmDataset, nds); nt.TaskManager = _taskManager; nt.OsmPointFeatureClass = ((IFeatureWorkspace)_osmDataset.Workspace).OpenFeatureClass(_osmPointName); nt.OsmEdgeFeatureClasses = _edgeSources .OfType<INetworkSource>() .Select(ns => ((IFeatureWorkspace)_osmDataset.Workspace).OpenFeatureClass(ns.Name)) .ToList(); IFeatureClass fc = ((IFeatureWorkspace)_osmDataset.Workspace).OpenFeatureClass(_osmLineName); nt.OsmExtVersion = fc.OSMExtensionVersion(); _turnSource = nt.ExtractTurnRestrictions(); } finally { if (nds != null) { ((IDataset)nds).Delete(); ComReleaser.ReleaseCOMObject(nds); } } }