Creating a T-Junction Does Not Route Successfully

498
8
02-09-2018 03:25 AM
MinxueChen
New Contributor II

Dear Experts,

I was trying to create a T-Junction in my network. But it didn't work. Here is how I created it:

1. Got a street with several vertex:

2. Create a new street from one of the vertex (Snapping had turned on):

3. Give the new street proper F and T_ZLEV value (both are 0), which are the same as the existing one:

4. ND connectivity property set to "Any Vertex":

5. Build and run a Route:

The Network Identify Tool also shows that this newly created street do not have adjacent edges.

However, if I create a T-junction, but connect to a Junction Point, instead of Vertex Point, it will work.

Besides, if I create a X-junction, crossing a Vertex Point, it work too.

Is there anything that I'm missing here?

0 Kudos
8 Replies
JoeBorgione
MVP Esteemed Contributor
0 Kudos
MinxueChen
New Contributor II

Hi Joe,

Thank you!

The link you sent gave a solution of "Splitting the line at junction". 

However, I still want to keep the line 'un-split'. Because I have other data on the streets such as 'Address Range' that will get messed up by splitting the line.

Besides, if I draw a new street crossing a Vertex, where it become a X-junction, the routing works fine. And the line does not get split. 

Any thoughts?

0 Kudos
JoeBorgione
MVP Esteemed Contributor

Beats me.  All the NA work I've done never used any vertex as all the address ranges were begin node to end node and splits were enforced.

Perhaps jsandhu-esristaff‌ has an idea...

can't wait to retire....
0 Kudos
AlanHatakeyama
Esri Contributor

If you would like the endpoint of one line feature (Feature A) to be connected to a vertex on another line feature (Feature B) that is not an endpoint, the elevation field for the coincident endpoint of Feature A must be set to Null.  When an elevation field value is set to a numeric value, it will only connect to other line endpoints or junctions with that same numeric value; it will not connect to non-endpoints.  Non-endpoint vertices will only connect to endpoints that have a Null elevation value.

MinxueChen
New Contributor II

Thank you Alan! It's very helpful! It does solve my problem when I set them to NULL.

One more question, very similar.

What if I want the endpoint of one line feature (Feature A) to be connected to a edge on another line feature (Feature B). This endpoint is not connected to any endpoint or vertex, just on a edge from Feature B. I set the elevation field for the coincident endpoint of Feature A to NULL. But the routing didn't work. Do you know how can I deal with that situation? 

0 Kudos
AlanHatakeyama
Esri Contributor

All connections must happen at either endpoints or vertices.  It is not possible to connect to an edge between vertices.  You will need to modify the other line feature (Feature B) to have a vertex at the location where you would like the connection to occur.

MinxueChen
New Contributor II

Thank you Alan! 

0 Kudos
DougKampe
New Contributor III

OMG, I spent days looking for a solution and setting the intersecting elevation fields to null was it. If you live in the Baltimore area I owe you a beer! I really like ESRI's attempt to provide good documentation, and generally they do a good job, but sometimes it misses small crucial details. This is one of them. ESRI, if you're listening, please update the Understanding Connectivity and Modeling Elevations help pages here to make this clearer:  http://desktop.arcgis.com/en/arcmap/10.3/guide-books/extensions/network-analyst/understanding-connec...

 

I'm going to add to this discussion because I'm in the middle of building a multi-modal pedestrian network (2 groups.) The sources are group 1 - Sidewalks (any vertex connectivity), group 2 - roads (endpoint connectivity), and a custom junction point layer (roadMeetsSidewalk) that overrides the connectivity rules in both groups. The “building a multi-modal network” documents don’t completely describe how to build one from scratch. Here are some additional tips I can provide. 

 

  • If you have road A vertex intersect road B vertex, you can use a junction to override the endpoint connectivity.
  • In my network, if road A endpoint ends with road B vertex, I still have to use a junction to override the connectivity rules, but I must put the road A elevation to null.
  • If you have the vertex of a sidewalk layer (described above) intersect the vertex of a road vertex a junction can also provide connectivity between both groups.

 

The reason why I’m going into this much detail with this is the high level of complexity that goes into building a multi-modal network, and I’ve found it won’t work without adhering to these tips.

0 Kudos