Docs · Editor panels · Stops

Stops

With a route selected, click along the route line to drop stops. By default each stop snaps to the nearest point on the route and renders offset to the right side of the line — mimicking the curbside convention riders actually experience. Place an off-route stop (park-and-ride, transfer center, off-street terminal) by toggling freehand mode.

GTFS·X editor with the Stops panel and demo feed's stops rendered on the map.
The Stops panel. The badge on the sidebar shows total stop count; the right pane lists every stop with its name and attributes.

Snap-to-route placement

Open the Routes panel, click a route, and click Add stops. Then click along the route on the map. Each click drops a stop that snaps to the nearest point on the route line and renders offset to the right side (the curbside convention for North American right-of-the-road traffic). The snap means stops always sit on the route geometry — you don't have to worry about whether your click was perfectly on the line.

Stops are added in click order; they're given sequential stop_sequence values when the trip is constructed. Reorder them later by dragging the stop list in the sidebar — useful when you realize the route runs in the opposite direction from how you placed the stops.

Freehand stop placement

Some stops aren't on a route line — park-and-rides served off the main alignment, transfer centers off-street, the end-of-line at a terminal. Toggle Freehand in the stop placement toolbar and click anywhere. The stop drops at that exact lat/lon with no snap.

Freehand stops can still be assigned to a route — the editor maintains the route ↔ stop association through route_stops records — they just don't sit on the route's polyline. Trip planners handle this fine; the polyline is for display, the stop locations are what matter for boarding.

Duplicate detection

If you click near an existing stop (within ~30 m), the editor prompts: "There's already a stop here, reuse it?" Accept the prompt — a stop served by multiple routes should be a single record in stops.txt, not several. Trip planners use stop identity for transfer routing; duplicating stops breaks that.

The typical pattern: when adding stops to a second route that shares stops with the first, click close to the existing stops to get the reuse prompt for each. If you accidentally end up with two stops at the same intersection, use the Stops panel to find both, then delete the duplicate (the editor will warn you if any trips reference the one you're deleting and lets you reassign first).

Stop attributes

Click a stop in the sidebar list to edit its properties:

Reordering stops along a route

Drag stops in the sidebar list to reorder them. The new order updates every trip on that route — stop_sequence is recomputed. If trips reference different subsets of stops (a short-turn variant that skips downtown), reorder doesn't break those; the editor preserves which stops each trip touches.

Edge cases and gotchas

See also