public IReadOnlyList<TopologyEdge> GetEdges()
Public Overloads Function GetEdges() As IReadOnlyList(Of TopologyEdge)
Return Value
A list of all the TopologyEdges that exist in the topology graph.
public IReadOnlyList<TopologyEdge> GetEdges()
Public Overloads Function GetEdges() As IReadOnlyList(Of TopologyEdge)
Exception | Description |
---|---|
ArcGIS.Core.Data.Exceptions.GeodatabaseException | A geodatabase-related exception has occurred. |
private async Task BuildGraphWithActiveView() { await QueuedTask.Run(() => { //Build the map topology graph MapView.Active.BuildMapTopologyGraph<TopologyDefinition>(async topologyGraph => { //Getting the nodes and edges present in the graph var topologyGraphNodes = topologyGraph.GetNodes(); var topologyGraphEdges = topologyGraph.GetEdges(); foreach (var node in topologyGraphNodes) { // do something with the node } foreach (var edge in topologyGraphEdges) { // do something with the edge } MessageBox.Show($"Number of topo graph nodes are: {topologyGraphNodes.Count}.\n Number of topo graph edges are {topologyGraphEdges.Count}.", "Map Topology Info"); }); }); }
public void ExploreTopologyGraph() { using (Geodatabase geodatabase = new Geodatabase(new FileGeodatabaseConnectionPath(new Uri(@"C:\TestData\GrandTeton.gdb")))) using (Topology topology = geodatabase.OpenDataset<Topology>("Backcountry_Topology")) { // Build a topology graph using the extent of the topology dataset. topology.BuildGraph(topology.GetExtent(), (topologyGraph) => { using (Feature campsites12 = GetFeature(geodatabase, "Campsites", 12)) { IReadOnlyList<TopologyNode> topologyNodesViaCampsites12 = topologyGraph.GetNodes(campsites12); TopologyNode topologyNodeViaCampsites12 = topologyNodesViaCampsites12[0]; IReadOnlyList<TopologyEdge> allEdgesConnectedToNodeViaCampsites12 = topologyNodeViaCampsites12.GetEdges(); IReadOnlyList<TopologyEdge> allEdgesConnectedToNodeViaCampsites12CounterClockwise = topologyNodeViaCampsites12.GetEdges(false); System.Diagnostics.Debug.Assert(allEdgesConnectedToNodeViaCampsites12.Count == allEdgesConnectedToNodeViaCampsites12CounterClockwise.Count); foreach (TopologyEdge edgeConnectedToNodeViaCampsites12 in allEdgesConnectedToNodeViaCampsites12) { TopologyNode fromNode = edgeConnectedToNodeViaCampsites12.GetFromNode(); TopologyNode toNode = edgeConnectedToNodeViaCampsites12.GetToNode(); bool fromNodeIsTheSameAsTopologyNodeViaCampsites12 = (fromNode == topologyNodeViaCampsites12); bool toNodeIsTheSameAsTopologyNodeViaCampsites12 = (toNode == topologyNodeViaCampsites12); System.Diagnostics.Debug.Assert(fromNodeIsTheSameAsTopologyNodeViaCampsites12 || toNodeIsTheSameAsTopologyNodeViaCampsites12, "The FromNode *or* ToNode of each edge connected to 'topologyNodeViaCampsites12' should be the same as 'topologyNodeViaCampsites12' itself."); IReadOnlyList<FeatureInfo> leftParentFeaturesBoundedByEdge = edgeConnectedToNodeViaCampsites12.GetLeftParentFeatures(); foreach (FeatureInfo featureInfo in leftParentFeaturesBoundedByEdge) { System.Diagnostics.Debug.Assert(!String.IsNullOrEmpty(featureInfo.FeatureClassName)); System.Diagnostics.Debug.Assert(featureInfo.ObjectID > 0); EnsureShapeIsNotEmpty(featureInfo); } IReadOnlyList<FeatureInfo> leftParentFeaturesNotBoundedByEdge = edgeConnectedToNodeViaCampsites12.GetLeftParentFeatures(false); foreach (FeatureInfo featureInfo in leftParentFeaturesNotBoundedByEdge) { System.Diagnostics.Debug.Assert(!String.IsNullOrEmpty(featureInfo.FeatureClassName)); System.Diagnostics.Debug.Assert(featureInfo.ObjectID > 0); EnsureShapeIsNotEmpty(featureInfo); } IReadOnlyList<FeatureInfo> rightParentFeaturesBoundedByEdge = edgeConnectedToNodeViaCampsites12.GetRightParentFeatures(); foreach (FeatureInfo featureInfo in rightParentFeaturesBoundedByEdge) { System.Diagnostics.Debug.Assert(!String.IsNullOrEmpty(featureInfo.FeatureClassName)); System.Diagnostics.Debug.Assert(featureInfo.ObjectID > 0); EnsureShapeIsNotEmpty(featureInfo); } IReadOnlyList<FeatureInfo> rightParentFeaturesNotBoundedByEdge = edgeConnectedToNodeViaCampsites12.GetRightParentFeatures(false); foreach (FeatureInfo featureInfo in rightParentFeaturesNotBoundedByEdge) { System.Diagnostics.Debug.Assert(!String.IsNullOrEmpty(featureInfo.FeatureClassName)); System.Diagnostics.Debug.Assert(featureInfo.ObjectID > 0); EnsureShapeIsNotEmpty(featureInfo); } } } }); } } private void EnsureShapeIsNotEmpty(FeatureInfo featureInfo) { using (Feature feature = featureInfo.GetFeature()) { System.Diagnostics.Debug.Assert(!feature.GetShape().IsEmpty, "The feature's shape should not be empty."); } }
Target Platforms: Windows 11, Windows 10