TransitMapper
See the location and details of the next vehicles to a stop using Google Maps
Have questions? Read the background and notes below
Static version (simple):
OR
Dark markers represent selected stops. *Detour(s) in effect
Interactive version:
OR load the map and pick a stop by selecting a route and direction at bottom
- Can update the data and change stops without reloading the entire page
- Can now show all stops (or just timepoints) on a route directly on the map
- Shows table with details of all arrivals
- Can automatically update the data once a minute
- Can also re-center the map on and scroll table to the selected vehicle (or stop) on update
- Selected stop or vehicle is highlighted in the table
- Map/table can be resized (drag the bar separating the two)
- Now with icons that show the arrival number. Dynamic icons with stop/vehicle numbers may be added.
- "On trip" means it is known that the vehicle has departed for the trip on which it will serve the selected stop.
Interactive version (older, map only):
Like the version above, but all details are contained in the pop-up bubbles.
Also, this will follow the same-numbered arrival and not necessarily the same vehicle, and vehicles whose location is unknown are not shown.
Background:
Route and arrival data provided by permission of TriMet
TriMet's buses and trains send their current location about every 30 seconds or so to TriMet's computer system and they have made this real-time data publicly available. When my Web site receives a request for updated data, it in turn asks TriMet's system for current data, formats the reply and sends it on to your browser.
I am not a programmer per se, but happened to come across this post by TriMet programmer Frank Purcell which linked to the output and allowed me to see the latitude/longitude data in it. I believed that latitude and longitude belong on a map and had already done work in PHP for my photo albums (which started out as Oberkampf), and figured it wouldn't be too hard to use Google Maps to do it.
Notes:
- Separate multiple stops with commas. Do not use spaces. Multi-stop example: See all vehicles approaching W Burnside/5th/6th using the interactive version.
- Portland Streetcar vehicles may also be added. They have a separate tracking system (by NextBus) which has it's own arrival data as well as Java- and Google Maps-based live maps. I did not think of looking at theirs to see how they did it.
- Inbound is generally towards Portland City Center for lines that end there or the northern or northeastern destination for lines that travel through there. For other lines, it's usually the end of the line that's at a transit center (if only one is) or towards Portland City Center.
- In addition to the mapped locations, it shows some of the other details (train #, miles away, layovers, etc) that are in the arrivals data but generally not made publicly available. For example, the train # can be used to track a particular bus and operator if you know which one they are doing.
- "As of" is when the location data of the given vehicle was last reported
- "Train" (also referred to as a "block") refers to a specific vehicle, and the group of trips that the vehicle will make on a certain day. The first one or two numbers represent the line the vehicle is generally assigned to; the last two numbers represent the specific vehicle on that line.
- The "early/late" times are the forecast for the selected stop and don't represent the current status of the vehicles if there is a layover before the stop. Positive (+) values mean early; negative (-) values mean late.
- While the official TriMet interactive map can show vehicle locations, it can only do so on a by-line basis and this was originally made (in early November 2009) before that. It also couldn't show MAX locations, however this may be because the arrival data had not been available while they improved it.