I’m using ArcGIS Pro 3.5 to map six bus routes, each represented by a single polyline in one feature class (i.e., six features total). Some routes follow the same roads, so I want to visually separate them using symbology offsets.
I applied Unique Value symbology by route name and used Symbol Layer Drawing to assign different stroke offsets and colors to each route. The goal is to show overlapping routes side by side clearly.
The problem: some offset lines are missing segments or appear broken. The offset size doesn't matter, some lines break visually no matter what. The screenshot is one of six bus lines symbologized.
What I’ve tried:
Used Unique Value symbology with different offsets and colors.
Ran Multipart to Singlepart — all features are singlepart now.
Ran Check Geometry and Repair Geometry — no major issues found.
Tried solid strokes only (no dashes or arrowheads).
Disabled Map Topology.
Cleared the display cache and restarted Pro.
Still no luck. Offset rendering keeps failing on shared geometry. Any ideas on how to fix this?
I do not see an option to edit. Here is the screenshot:
Try Using Move instead of Offset.
Offset is almost like a buffer, but Move maintains the shape and just shifts everything.
This is also something that is best done at a very particular scale. That being said, Move is not without its own drawbacks.
Something that may be possible instead would be hatching or something during the overlapping parts?
I know you want them to be parallel, but...
Something else, depending on how complex your routes get, is to play around with control points and then add suppression effects to only be dashed/etc. at the overlaps? Make sure suppress is set as the first effect or else the dash will break the suppression.
Make sure to turn on symbol layer drawing Symbol layer drawing—ArcGIS Pro | Documentation to make sure that the routes draw in the right order
Ok, so this is definitely more complicated, but if you want to be fancy...
Try using routes Create routes using the Create Routes geoprocessing tool—ArcGIS Pro | Documentation (I think this may require the linear referencing license?)
You can then make an event table. You need a field for the following: Route the event occurs on, Event Name, Begin Point, and End point.
You can then populate the event table using the "M" values. To find these, select each feature and open the attribute pane. Then, you can check the geometry of each vertex, which will include the M value. Clicking on the vertex will flash it on the map, so you'll be able to tell which one you actually want.
Then you can make an event for each overlapping segment to offset or move it how you like (Pro tip: you may want to try using a VERY small extension effect to connect the offset segment to the main segment), and create a route event layer to symbolize each event.
Pro tip: You will mess this up a bunch, but the route event layer will change as you update the event table. The only exception is if you change the underlying geometry; then it may get funky.
You will want the symbology to match the underlying route, but you will want to symbolize by event AND route so that you can adjust each one as needed.
Before | After |
|
|
Plain Event | Event table |
|
Hope this helps!