The steps below require an Advanced license. Broadly, these are the steps:
- Reproject layers to same projection
- Use the "Near" tool to snap your stop points to your route lines
- Export data table and create new points from "snapped" XY coordinates
- Use the "Integrate" tool to make your snapped stop points and route lines coincident.
- Use the "Split Line at Point" tool to split your route lines into segments.
In detail:
First, you'll need to make sure that your stops and routes are in the same projection. If not, choose a project to use for all layers, and reproject either (or both) by using ArcToolbox --> Data Management Tools --> Projections and Transformations --> Project
.
Use ArcToolbox --> Analysis Tools --> Proximity --> Near
to join your stops (Input Features) to your Routes (Near Features). Be sure to select the Location (optional)
checkbox, which will create the XY coordinates for the "snapped" stops. This adds four columns to your stops data table, include NEAR_X and NEAR_Y with coordinates for the snapped points.
Export yours stops data table (the table, not the layer--Open Attribute Table, then from the attribute table choose "Export"), and click Yes when prompted to add the new table to the current map. Right click on your new table, and choose "Display XY Data" setting X Field
to "NEAR_X" and Y Field
to "NEAR_Y" and click OK. You should now see your stops projected immediately on top of your routes. Export the resulting layer to your file geodatabase (e.g. "Stops_Snapped") and add back to your map when prompted.
Next, you need to Integrate your Stops and Routes. Choose ArcToolbox --> Data Management Tools --> Feature Class --> Integrate
. Add both your Routes and snapped stops (Stops_Snapped). (Be aware that Integrate modifies the underlying data--so make sure you're working on a copy!) Set a small but reasonable XY tolerance
(e.g. 1 meter). (I'm not certain that this step is strictly necessary, but I included it my workflow and arrived at a successful output.)
Finally, split your Routes lines based on your Stops_Snapped points. Choose ArcToolbox --> Data Management Tools --> Features --> Split Line at Point
. Set your Route as Input Features, Stops as Point Features. Specify your XY Tolerance
(this may need to be larger than you would expect--e.g. 10 - 15 feet--experiment and see what works best).
Now, when you rebuild your network dataset with your new features, you should get an error-free build!
One final note: when you build your network dataset, you need to "connect" your streets to your public transit routes using the stop points you've created. (For more about connections, see ESRI's help file.) You'll need to set you Connectivity Policy for your streets to "Any Vertex" and for your stops to "Override":