/// <summary> /// GetTraversalResultLayer will generate a layer out of the traversal result for the specified element type /// </summary> private IFeatureLayer GetTraversalResultLayer(esriNetworkElementType elementType, INATraversalResultQuery2 naTraversalResultQuery) { //Junctions Traversal Result Feature Layer IFeatureClass traversalResultFeatureClass = naTraversalResultQuery.get_FeatureClass(elementType); if (traversalResultFeatureClass != null) { // save the rows in this class out when the MXD is saved INAClass naClass = traversalResultFeatureClass as INAClass; naClass.SaveRowsOnPersist = true; // create the traversal result layer IFeatureLayer traversalResultLayer = new FeatureLayerClass(); traversalResultLayer.FeatureClass = traversalResultFeatureClass; traversalResultLayer.Name = traversalResultFeatureClass.AliasName; // Set up the layer with an appropriate symbology var geoFeatureLayer = traversalResultLayer as IGeoFeatureLayer; geoFeatureLayer.RendererPropertyPageClassID = (new SingleSymbolPropertyPageClass()).ClassID; geoFeatureLayer.Renderer = GetRenderer(elementType); return(traversalResultLayer); } return(null); }
// // CONSTRUCTOR // public NetworkSource(IXPathNavigable path) : base(path) { // Get Navigator XPathNavigator navigator = path.CreateNavigator(); // <ID></ID> XPathNavigator navigatorID = navigator.SelectSingleNode("ID"); if (navigatorID != null) { this._id = navigatorID.ValueAsInt; } // <ClassID></ClassID> XPathNavigator navigatorClassID = navigator.SelectSingleNode("ClassID"); if (navigatorClassID != null) { this._classId = navigatorClassID.ValueAsInt; } // <Name></Name> XPathNavigator navigatorName = navigator.SelectSingleNode("Name"); if (navigatorName != null) { this._name = navigatorName.Value; } // <ElementType></ElementType> XPathNavigator navigatorElementType = navigator.SelectSingleNode("ElementType"); if (navigatorElementType != null) { this._elementType = (esriNetworkElementType)Enum.Parse(typeof(esriNetworkElementType), navigatorElementType.Value, true); } // <Properties><Property><Property><Properties> this._properties = new List <Property>(); XPathNodeIterator interatorProperty = navigator.Select("Properties/Property"); while (interatorProperty.MoveNext()) { // Get <Property> XPathNavigator navigatorProperty = interatorProperty.Current; // Add Property Property property = new Property(navigatorProperty); this._properties.Add(property); } // <NetworkSourceDirections> XPathNavigator navigatorNetworkSourceDirections = navigator.SelectSingleNode("NetworkSourceDirections"); if (navigatorNetworkSourceDirections != null) { this._networkSourceDirections = new NetworkSourceDirections(navigatorNetworkSourceDirections); } }
// // CONSTRUCTOR // public NetworkAssignment(IXPathNavigable path) : base(path) { // Get Navigator XPathNavigator navigator = path.CreateNavigator(); // <IsDefault> XPathNavigator navigatorIsDefault = navigator.SelectSingleNode("IsDefault"); if (navigatorIsDefault != null) { this._isDefault = navigatorIsDefault.ValueAsBoolean; } // <ID> XPathNavigator navigatorID = navigator.SelectSingleNode("ID"); if (navigatorID != null) { this._id = navigatorID.ValueAsInt; } // <NetworkAttributeName> XPathNavigator navigatorNetworkAttributeName = navigator.SelectSingleNode("NetworkAttributeName"); if (navigatorNetworkAttributeName != null) { this._networkAttributeName = navigatorNetworkAttributeName.Value; } // <NetworkElementType> XPathNavigator navigatorNetworkElementType = navigator.SelectSingleNode("NetworkElementType"); if (navigatorNetworkElementType != null) { this._networkElementType = (esriNetworkElementType)Enum.Parse(typeof(esriNetworkElementType), navigatorNetworkElementType.Value, true); } // <NetworkSourceName> XPathNavigator navigatorNetworkSourceName = navigator.SelectSingleNode("NetworkSourceName"); if (navigatorNetworkSourceName != null) { this._networkSourceName = navigatorNetworkSourceName.Value; } // <NetworkEvaluatorCLSID> XPathNavigator navigatorNetworkEvaluatorCLSID = navigator.SelectSingleNode("NetworkEvaluatorCLSID"); if (navigatorNetworkEvaluatorCLSID != null) { this._networkEvaluatorCLSID = navigatorNetworkEvaluatorCLSID.Value; } // <NetworkEdgeDirection> XPathNavigator navigatorNetworkEdgeDirection = navigator.SelectSingleNode("NetworkEdgeDirection"); if (navigatorNetworkEdgeDirection != null) { this._networkEdgeDirection = (esriNetworkEdgeDirection)Enum.Parse(typeof(esriNetworkEdgeDirection), navigatorNetworkEdgeDirection.Value, true); } // <NetworkEvaluatorData><PropertyArray><PropertySetProperty> this._networkEvaluatorData = new List<Property>(); XPathNodeIterator interatorProperty = navigator.Select("NetworkEvaluatorData/PropertyArray/PropertySetProperty"); while (interatorProperty.MoveNext()) { // Get <PropertySetProperty> XPathNavigator navigatorProperty = interatorProperty.Current; // Add PropertySetProperty Property property = new Property(navigatorProperty); this._networkEvaluatorData.Add(property); } }
public NetworkSource(SerializationInfo info, StreamingContext context) : base(info, context) { this._id = info.GetInt32("id"); this._classId = info.GetInt32("classId"); this._name = info.GetString("name"); this._elementType = (esriNetworkElementType)Enum.Parse(typeof(esriNetworkElementType), info.GetString("elementType"), true); this._properties = (List <Property>)info.GetValue("properties", typeof(List <Property>)); this._networkSourceDirections = (NetworkSourceDirections)info.GetValue("networkSourceDirections", typeof(NetworkSourceDirections)); }
public NetworkAssignment(SerializationInfo info, StreamingContext context) : base(info, context) { this._isDefault = info.GetBoolean("isDefault"); this._id = info.GetInt32("id"); this._networkAttributeName = info.GetString("networkAttributeName"); this._networkElementType = (esriNetworkElementType)Enum.Parse(typeof(esriNetworkElementType), info.GetString("networkElementType"), true); this._networkSourceName = info.GetString("networkSourceName"); this._networkEvaluatorCLSID = info.GetString("networkEvaluatorCLSID"); this._networkEdgeDirection = (esriNetworkEdgeDirection)Enum.Parse(typeof(esriNetworkEdgeDirection), info.GetString("networkEdgeDirection"), true); this._networkEvaluatorData = (List <Property>)info.GetValue("networkEvaluatorData", typeof(List <Property>)); }
private string method_2(esriNetworkElementType esriNetworkElementType_0) { switch (esriNetworkElementType_0) { case esriNetworkElementType.esriNETJunction: return("Junction"); case esriNetworkElementType.esriNETEdge: return("Edge"); } return("Turn"); }
public static void SetEvaluators(IEvaluatedNetworkAttribute netAttribute, INetworkSource netSource, Type t) { esriNetworkElementType eType = netSource.ElementType; if (eType == esriNetworkElementType.esriNETEdge) { SetEvaluator(netAttribute, netSource, t, esriNetworkEdgeDirection.esriNEDAlongDigitized); SetEvaluator(netAttribute, netSource, t, esriNetworkEdgeDirection.esriNEDAgainstDigitized); } else { SetEvaluator(netAttribute, netSource, t, esriNetworkEdgeDirection.esriNEDNone); } }
public bool ValidateDefault(esriNetworkElementType elementType, IEvaluatedNetworkAttribute attribute, ref int errorCode, ref string errorDescription, ref string errorAppendInfo) { if (SupportsDefault(elementType, attribute)) { errorCode = 0; errorDescription = errorAppendInfo = string.Empty; return(true); } else { errorCode = -1; errorDescription = errorAppendInfo = string.Empty; return(false); } }
public NetworkAssignment(NetworkAssignment prototype) : base(prototype) { this._isDefault = prototype.IsDefault; this._id = prototype.ID; this._networkAttributeName = prototype.NetworkAttributeName; this._networkElementType = prototype.NetworkElementType; this._networkSourceName = prototype.NetworkSourceName; this._networkEvaluatorCLSID = prototype.NetworkEvaluatorCLSID; this._networkEdgeDirection = prototype.NetworkEdgeDirection; this._networkEvaluatorData = new List <Property>(); foreach (Property property in prototype.NetworkEvaluatorDataCollection) { Property propertyClone = (Property)property.Clone(); this._networkEvaluatorData.Add(propertyClone); } }
// // CONSTRUCTOR // public NetworkSource(IXPathNavigable path) : base(path) { // Get Navigator XPathNavigator navigator = path.CreateNavigator(); // <ID></ID> XPathNavigator navigatorID = navigator.SelectSingleNode("ID"); if (navigatorID != null) { this._id = navigatorID.ValueAsInt; } // <ClassID></ClassID> XPathNavigator navigatorClassID = navigator.SelectSingleNode("ClassID"); if (navigatorClassID != null) { this._classId = navigatorClassID.ValueAsInt; } // <Name></Name> XPathNavigator navigatorName = navigator.SelectSingleNode("Name"); if (navigatorName != null) { this._name = navigatorName.Value; } // <ElementType></ElementType> XPathNavigator navigatorElementType = navigator.SelectSingleNode("ElementType"); if (navigatorElementType != null) { this._elementType = (esriNetworkElementType)Enum.Parse(typeof(esriNetworkElementType), navigatorElementType.Value, true); } // <Properties><Property><Property><Properties> this._properties = new List<Property>(); XPathNodeIterator interatorProperty = navigator.Select("Properties/Property"); while (interatorProperty.MoveNext()) { // Get <Property> XPathNavigator navigatorProperty = interatorProperty.Current; // Add Property Property property = new Property(navigatorProperty); this._properties.Add(property); } // <NetworkSourceDirections> XPathNavigator navigatorNetworkSourceDirections = navigator.SelectSingleNode("NetworkSourceDirections"); if (navigatorNetworkSourceDirections != null) { this._networkSourceDirections = new NetworkSourceDirections(navigatorNetworkSourceDirections); } }
public NetworkSource(NetworkSource prototype) : base(prototype) { this._id = prototype.ID; this._classId = prototype.ClassId; this._name = prototype.Name; this._elementType = prototype.ElementType; this._properties = new List <Property>(); foreach (Property property in prototype.PropertyCollection) { Property propertyClone = (Property)property.Clone(); this._properties.Add(propertyClone); } if (prototype.NetworkSourceDirections != null) { this._networkSourceDirections = (NetworkSourceDirections)prototype.NetworkSourceDirections.Clone(); } }
/// <summary> /// Verify that the EID corresponds to a valid network element /// <param name="value">The EID passed as a string</param> /// <param name="elementType">The type of element to be verified</param> /// </summary> bool ValidateEID(string value, esriNetworkElementType elementType) { // validate that the EID is a valid integer int eid = -1; if (!Int32.TryParse(value, out eid) || eid < 1) { return(false); } // QueryEdge and QueryJunction will throw exceptions if the EID doesn't match any elements var netQuery = m_context.NetworkDataset as INetworkQuery; try { switch (elementType) { case esriNetworkElementType.esriNETJunction: var junction = netQuery.CreateNetworkElement(esriNetworkElementType.esriNETJunction) as INetworkJunction; netQuery.QueryJunction(eid, junction); break; case esriNetworkElementType.esriNETEdge: var edge = netQuery.CreateNetworkElement(esriNetworkElementType.esriNETEdge) as INetworkEdge; netQuery.QueryEdge(eid, esriNetworkEdgeDirection.esriNEDAlongDigitized, edge); break; default: return(false); } } catch { return(false); } return(true); }
public NetworkSource(SerializationInfo info, StreamingContext context) : base(info, context) { this._id = info.GetInt32("id"); this._classId = info.GetInt32("classId"); this._name = info.GetString("name"); this._elementType = (esriNetworkElementType)Enum.Parse(typeof(esriNetworkElementType), info.GetString("elementType"), true); this._properties = (List<Property>)info.GetValue("properties", typeof(List<Property>)); this._networkSourceDirections = (NetworkSourceDirections)info.GetValue("networkSourceDirections", typeof(NetworkSourceDirections)); }
public static List <INetworkSource> GetSourceList(List <INetworkSource> netSources, esriNetworkElementType eType) { List <esriNetworkElementType> eTypes = new List <esriNetworkElementType>(); eTypes.Add(eType); return(GetSourceList(netSources, eTypes)); }
public NetworkSource(NetworkSource prototype) : base(prototype) { this._id = prototype.ID; this._classId = prototype.ClassId; this._name = prototype.Name; this._elementType = prototype.ElementType; this._properties = new List<Property>(); foreach (Property property in prototype.PropertyCollection) { Property propertyClone = (Property)property.Clone(); this._properties.Add(propertyClone); } if (prototype.NetworkSourceDirections != null) { this._networkSourceDirections = (NetworkSourceDirections)prototype.NetworkSourceDirections.Clone(); } }
private static Dictionary <string, List <int> > GetEIDListsBySourceName(INetworkAnalystExtension nax, object searchObject, string baseName) { if (nax == null) { return(null); } bool naxEnabled = false; IExtensionConfig naxConfig = nax as IExtensionConfig; naxEnabled = naxConfig.State == esriExtensionState.esriESEnabled; if (!naxEnabled) { return(null); } INAWindow naWindow = nax.NAWindow; INALayer naLayer = null; INAContext naContext = null; INetworkDataset nds = null; naLayer = naWindow.ActiveAnalysis; if (naLayer != null) { naContext = naLayer.Context; } if (naContext != null) { nds = naContext.NetworkDataset; } INetworkQuery netQuery = nds as INetworkQuery; if (netQuery == null) { return(null); } bool oidSearch = false; bool geometrySearch = false; if (searchObject == null) { return(null); } else if (searchObject is Dictionary <string, ILongArray> ) { oidSearch = true; } else if (searchObject is IGeometry) { geometrySearch = true; } else { return(null); } VarType vt = GetEIDArrayParameterType(); List <string> sourceNames = FindParameterizedSourceNames(nds, baseName, vt); Dictionary <string, List <int> > eidsBySourceName = new Dictionary <string, List <int> >(); foreach (string sourceName in sourceNames) { INetworkSource netSource = nds.get_SourceByName(sourceName); int sourceID = netSource.ID; List <int> eids = new List <int>(); if (oidSearch) { Dictionary <string, ILongArray> oidArraysBySourceName = (Dictionary <string, ILongArray>)searchObject; ILongArray oids = null; IEnumNetworkElement enumNetElement; INetworkElement netElement; if (oidArraysBySourceName.TryGetValue(sourceName, out oids)) { enumNetElement = netQuery.get_ElementsByOIDs(sourceID, oids); enumNetElement.Reset(); netElement = enumNetElement.Next(); while (netElement != null) { eids.Add(netElement.EID); netElement = enumNetElement.Next(); } } } else if (geometrySearch) { IGeometry searchGeometry = (IGeometry)searchObject; if (searchGeometry != null && !searchGeometry.IsEmpty) { IGeometry elementGeometry = null; esriNetworkElementType elementType = esriNetworkElementType.esriNETEdge; int eid = -1; // Search for the network dataset layer associated with the active analysis layer or create one using the // network dataset if matching one not found. // If, for example, multiple network dataset layers are added to the map, the active analysis layer // might not reference the current network dataset layer (nax.CurrentNetworkLayer). INetworkLayer ndsLayer = new NetworkLayerClass(); ndsLayer.NetworkDataset = nds; int count = nax.NetworkLayerCount; for (int i = 0; i < count; ++i) { ndsLayer = nax.get_NetworkLayer(i); if (ndsLayer.NetworkDataset == nds) { break; } else { ndsLayer = null; } } if (ndsLayer == null) { ndsLayer = new NetworkLayerClass(); ndsLayer.NetworkDataset = nds; } IEnumLocatedNetworkElement enumLocatedNetElement = null; if (ndsLayer != null) { enumLocatedNetElement = ndsLayer.SearchLocatedNetworkElements(sourceName, searchGeometry); enumLocatedNetElement.Reset(); eid = enumLocatedNetElement.Next(ref elementGeometry, ref elementType); while (eid != -1) { eids.Add(eid); eid = enumLocatedNetElement.Next(ref elementGeometry, ref elementType); } } } } eidsBySourceName.Add(sourceName, eids); } return(eidsBySourceName); }
/// <summary> /// Verify that the EID corresponds to a valid network element /// <param name="value">The EID passed as a string</param> /// <param name="elementType">The type of element to be verified</param> /// </summary> bool ValidateEID(string value, esriNetworkElementType elementType) { // validate that the EID is a valid integer int eid = -1; if (!Int32.TryParse(value, out eid) || eid < 1) return false; // QueryEdge and QueryJunction will throw exceptions if the EID doesn't match any elements var netQuery = m_context.NetworkDataset as INetworkQuery; try { switch (elementType) { case esriNetworkElementType.esriNETJunction: var junction = netQuery.CreateNetworkElement(esriNetworkElementType.esriNETJunction) as INetworkJunction; netQuery.QueryJunction(eid, junction); break; case esriNetworkElementType.esriNETEdge: var edge = netQuery.CreateNetworkElement(esriNetworkElementType.esriNETEdge) as INetworkEdge; netQuery.QueryEdge(eid, esriNetworkEdgeDirection.esriNEDAlongDigitized, edge); break; default: return false; } } catch { return false; } return true; }
/// <summary> /// GetRenderer will return a feature renderer with symbology appropriate to the specified element type /// </summary> private IFeatureRenderer GetRenderer(esriNetworkElementType networkElementType) { ISimpleRenderer simpleRend = new SimpleRendererClass(); IRgbColor color = new RgbColorClass(); switch (networkElementType) { // The junction symbology will be a large yellow circle with a thick black outline case esriNetworkElementType.esriNETJunction: ISimpleMarkerSymbol junctionPointSymbol = new SimpleMarkerSymbolClass(); junctionPointSymbol.Style = esriSimpleMarkerStyle.esriSMSCircle; junctionPointSymbol.Size = 10; //yellow color.Red = 255; color.Blue = 0; color.Green = 255; junctionPointSymbol.Color = color; junctionPointSymbol.Outline = true; junctionPointSymbol.OutlineSize = 2; //black color.Red = 0; color.Blue = 0; color.Green = 0; junctionPointSymbol.OutlineColor = color; simpleRend.Label = "TRFC_Junctions"; simpleRend.Symbol = junctionPointSymbol as ISymbol; return(simpleRend as IFeatureRenderer); // The turn symbology will be a thick purple line case esriNetworkElementType.esriNETTurn: ISimpleLineSymbol turnLineSymbol = new SimpleLineSymbolClass(); turnLineSymbol.Style = esriSimpleLineStyle.esriSLSSolid; turnLineSymbol.Width = 4; //purple color.Red = 125; color.Blue = 125; color.Green = 0; turnLineSymbol.Color = color; simpleRend.Label = "TRFC_Turns"; simpleRend.Symbol = turnLineSymbol as ISymbol; return(simpleRend as IFeatureRenderer); // The edge symbology will be a thick blue line case esriNetworkElementType.esriNETEdge: ISimpleLineSymbol edgeLineSymbol = new SimpleLineSymbolClass(); edgeLineSymbol.Style = esriSimpleLineStyle.esriSLSSolid; edgeLineSymbol.Width = 4; //blue color.Red = 0; color.Blue = 255; color.Green = 0; edgeLineSymbol.Color = color; simpleRend.Label = "TRFC_Edges"; simpleRend.Symbol = edgeLineSymbol as ISymbol; return(simpleRend as IFeatureRenderer); } return(null); }
public static void SetDefaultEvaluator(IEvaluatedNetworkAttribute netAttribute, object defaultValue, esriNetworkElementType eType) { INetworkConstantEvaluator constEvaluator = new NetworkConstantEvaluatorClass(); constEvaluator.ConstantValue = defaultValue; INetworkEvaluator eval = constEvaluator as INetworkEvaluator; netAttribute.set_DefaultEvaluator(eType, eval); }
public NetworkAssignment(SerializationInfo info, StreamingContext context) : base(info, context) { this._isDefault = info.GetBoolean("isDefault"); this._id = info.GetInt32("id"); this._networkAttributeName = info.GetString("networkAttributeName"); this._networkElementType = (esriNetworkElementType)Enum.Parse(typeof(esriNetworkElementType), info.GetString("networkElementType"), true); this._networkSourceName = info.GetString("networkSourceName"); this._networkEvaluatorCLSID = info.GetString("networkEvaluatorCLSID"); this._networkEdgeDirection = (esriNetworkEdgeDirection)Enum.Parse(typeof(esriNetworkEdgeDirection), info.GetString("networkEdgeDirection"), true); this._networkEvaluatorData = (List<Property>)info.GetValue("networkEvaluatorData", typeof(List<Property>)); }
// // CONSTRUCTOR // public NetworkAssignment(IXPathNavigable path) : base(path) { // Get Navigator XPathNavigator navigator = path.CreateNavigator(); // <IsDefault> XPathNavigator navigatorIsDefault = navigator.SelectSingleNode("IsDefault"); if (navigatorIsDefault != null) { this._isDefault = navigatorIsDefault.ValueAsBoolean; } // <ID> XPathNavigator navigatorID = navigator.SelectSingleNode("ID"); if (navigatorID != null) { this._id = navigatorID.ValueAsInt; } // <NetworkAttributeName> XPathNavigator navigatorNetworkAttributeName = navigator.SelectSingleNode("NetworkAttributeName"); if (navigatorNetworkAttributeName != null) { this._networkAttributeName = navigatorNetworkAttributeName.Value; } // <NetworkElementType> XPathNavigator navigatorNetworkElementType = navigator.SelectSingleNode("NetworkElementType"); if (navigatorNetworkElementType != null) { this._networkElementType = (esriNetworkElementType)Enum.Parse(typeof(esriNetworkElementType), navigatorNetworkElementType.Value, true); } // <NetworkSourceName> XPathNavigator navigatorNetworkSourceName = navigator.SelectSingleNode("NetworkSourceName"); if (navigatorNetworkSourceName != null) { this._networkSourceName = navigatorNetworkSourceName.Value; } // <NetworkEvaluatorCLSID> XPathNavigator navigatorNetworkEvaluatorCLSID = navigator.SelectSingleNode("NetworkEvaluatorCLSID"); if (navigatorNetworkEvaluatorCLSID != null) { this._networkEvaluatorCLSID = navigatorNetworkEvaluatorCLSID.Value; } // <NetworkEdgeDirection> XPathNavigator navigatorNetworkEdgeDirection = navigator.SelectSingleNode("NetworkEdgeDirection"); if (navigatorNetworkEdgeDirection != null) { this._networkEdgeDirection = (esriNetworkEdgeDirection)Enum.Parse(typeof(esriNetworkEdgeDirection), navigatorNetworkEdgeDirection.Value, true); } // <NetworkEvaluatorData><PropertyArray><PropertySetProperty> this._networkEvaluatorData = new List <Property>(); XPathNodeIterator interatorProperty = navigator.Select("NetworkEvaluatorData/PropertyArray/PropertySetProperty"); while (interatorProperty.MoveNext()) { // Get <PropertySetProperty> XPathNavigator navigatorProperty = interatorProperty.Current; // Add PropertySetProperty Property property = new Property(navigatorProperty); this._networkEvaluatorData.Add(property); } }
public bool SupportsDefault(esriNetworkElementType elementType, IEvaluatedNetworkAttribute attribute) { // This custom evaluator can not be used for assigning default attribute values. return false; }
public bool SupportsDefault(esriNetworkElementType elementType, IEvaluatedNetworkAttribute attribute) { // This custom evaluator can not be used for assigning default attribute values return(false); }
public NetworkAssignment(NetworkAssignment prototype) : base(prototype) { this._isDefault = prototype.IsDefault; this._id = prototype.ID; this._networkAttributeName = prototype.NetworkAttributeName; this._networkElementType = prototype.NetworkElementType; this._networkSourceName = prototype.NetworkSourceName; this._networkEvaluatorCLSID = prototype.NetworkEvaluatorCLSID; this._networkEdgeDirection = prototype.NetworkEdgeDirection; this._networkEvaluatorData = new List<Property>(); foreach (Property property in prototype.NetworkEvaluatorDataCollection) { Property propertyClone = (Property)property.Clone(); this._networkEvaluatorData.Add(propertyClone); } }
public bool SupportsDefault(esriNetworkElementType ElementType, IEvaluatedNetworkAttribute netAttribute) { return(false); }
/// <summary> /// GetTraversalResultLayer will generate a layer out of the traversal result for the specified element type /// </summary> private IFeatureLayer GetTraversalResultLayer(esriNetworkElementType elementType, INATraversalResultQuery2 naTraversalResultQuery) { //Junctions Traversal Result Feature Layer IFeatureClass traversalResultFeatureClass = naTraversalResultQuery.get_FeatureClass(elementType); if (traversalResultFeatureClass != null) { // save the rows in this class out when the MXD is saved INAClass naClass = traversalResultFeatureClass as INAClass; naClass.SaveRowsOnPersist = true; // create the traversal result layer IFeatureLayer traversalResultLayer = new FeatureLayerClass(); traversalResultLayer.FeatureClass = traversalResultFeatureClass; traversalResultLayer.Name = traversalResultFeatureClass.AliasName; // Set up the layer with an appropriate symbology var geoFeatureLayer = traversalResultLayer as IGeoFeatureLayer; geoFeatureLayer.RendererPropertyPageClassID = (new SingleSymbolPropertyPageClass()).ClassID; geoFeatureLayer.Renderer = GetRenderer(elementType); return traversalResultLayer; } return null; }
/// <summary> /// GetRenderer will return a feature renderer with symbology appropriate to the specified element type /// </summary> private IFeatureRenderer GetRenderer(esriNetworkElementType networkElementType) { ISimpleRenderer simpleRend = new SimpleRendererClass(); IRgbColor color = new RgbColorClass(); switch (networkElementType) { // The junction symbology will be a large yellow circle with a thick black outline case esriNetworkElementType.esriNETJunction: ISimpleMarkerSymbol junctionPointSymbol = new SimpleMarkerSymbolClass(); junctionPointSymbol.Style = esriSimpleMarkerStyle.esriSMSCircle; junctionPointSymbol.Size = 10; //yellow color.Red = 255; color.Blue = 0; color.Green = 255; junctionPointSymbol.Color = color; junctionPointSymbol.Outline = true; junctionPointSymbol.OutlineSize = 2; //black color.Red = 0; color.Blue = 0; color.Green = 0; junctionPointSymbol.OutlineColor = color; simpleRend.Label = "TRFC_Junctions"; simpleRend.Symbol = junctionPointSymbol as ISymbol; return simpleRend as IFeatureRenderer; // The turn symbology will be a thick purple line case esriNetworkElementType.esriNETTurn: ISimpleLineSymbol turnLineSymbol = new SimpleLineSymbolClass(); turnLineSymbol.Style = esriSimpleLineStyle.esriSLSSolid; turnLineSymbol.Width = 4; //purple color.Red = 125; color.Blue = 125; color.Green = 0; turnLineSymbol.Color = color; simpleRend.Label = "TRFC_Turns"; simpleRend.Symbol = turnLineSymbol as ISymbol; return simpleRend as IFeatureRenderer; // The edge symbology will be a thick blue line case esriNetworkElementType.esriNETEdge: ISimpleLineSymbol edgeLineSymbol = new SimpleLineSymbolClass(); edgeLineSymbol.Style = esriSimpleLineStyle.esriSLSSolid; edgeLineSymbol.Width = 4; //blue color.Red = 0; color.Blue = 255; color.Green = 0; edgeLineSymbol.Color = color; simpleRend.Label = "TRFC_Edges"; simpleRend.Symbol = edgeLineSymbol as ISymbol; return simpleRend as IFeatureRenderer; } return null; }
public bool SupportsDefault(esriNetworkElementType ElementType, IEvaluatedNetworkAttribute netAttribute) { return false; }
public bool ValidateDefault(esriNetworkElementType elementType, IEvaluatedNetworkAttribute attribute, ref int errorCode, ref string errorDescription, ref string errorAppendInfo) { if (SupportsDefault(elementType, attribute)) { errorCode = 0; errorDescription = errorAppendInfo = string.Empty; return true; } else { errorCode = -1; errorDescription = errorAppendInfo = string.Empty; return false; } }
public static List<INetworkSource> GetSourceList(List<INetworkSource> netSources, esriNetworkElementType eType) { List<esriNetworkElementType> eTypes = new List<esriNetworkElementType>(); eTypes.Add(eType); return GetSourceList(netSources, eTypes); }