Thank you again for the clear use case and data. With your use case we were able to identify another issue and have implemented a fix related to placement of starting points in 2.7. Another issue has been created to include barrier features in the trace result when using a network junction feature class as you were doing in your initial note.
As you noted with case "a", interactive placement of trace locations using the Trace Locations pane will allow you to place starting points or barriers on an edge or junction feature. This is the default method for placing trace locations
For case "b" below, I am curious if the edge element selected is upstream or downstream of the junction feature that is not selected. If you were to interactively place a starting point at the endpoint of a line from a small scale this could inadvertently place barriers on both adjacent endpoints which could explain why the junction feature is not included in the result set. I d id notice in my testing that if I am zoomed out a bit, a barrier was placed on both the upstream and downstream edge surrounding the junction. Alternatively, you could be placing the barrier on the endpoint of the edge upstream of the junction feature alone.
Testing on my end using 2.6.3 shows that if the barrier is placed on the endpoint of the edge downstream from the junction, the junction is included in the result.
Juncitoin feature included in trace resultBarrier interactively placed on endpoint of edge downstream of the junction feature
Regarding your question about the need for SOURCEID / FEATUREGLOBALID fields when placing trace locations. We have an open issue to address some issues that are encountered when using network features (such as WRProxyMZ) as barriers in a trace. While these are honored as barrier features, there may be inconsistencies including these in the trace result as you have noticed. The alternative solution for this is case "a" as you noted above. Another approach would be use to another user defined class for the trace locations.
- When placing starting points and barriers in a trace network, the SOURCEID / FEATUREGLOBALID are not required; however, these are honored if present.
Using to determine trace locations allows you to filter which features are used as trace locations. Perhaps you have a feature class that contains features you want to use as barriers; however, you only want a certain type of feature, or specific features to serve as barriers... In this case you could populate only the features you want to serve as barriers with SOURCEID/FEATUREGLOBALID information. When the trace is executed, only these features would be used as either the starting point or barrier from the class.
- To clarify, case, if your class has 20 records, but only 2 have SOURCEID/FEATUREGLOBALID populated with a valid value, only those 2 would be used as starting points or barriers in the trace.
If these fields are not present, the geometry of the feature class will be used to intersect the network feature geometry and place either the starting point or barrier.
user-defined feature class used as a barrier feature
This is outlined here:
Thanks,
Jon