About this map

This site is not affiliated with NJ Transit. Be sure to read the disclaimer. It's really long and it makes the lawyers happy. And it just might prevent you from ending up on Staten Island accidentally.

What if I find something wrong?

If you see something incorrect/outdated on the site, by all means let me know via email (fatguy1@mindspring.com) and I'll get it fixed. I haven't been on many of the routes and I know for a fact that the maps on the schedules (my main source of information) aren't always up-to-date.

Which bus routes are not on this map?

Generally, any route (or segment of a route) that has less than three round trips per day, private bus company routes, and routes (or portions thereof) that are seasonal. NJT routes known to not be on the map are: NJT63, NJT153, NJT318, NJT378, NJT417, NJT418, NJT460, and all Ocean County routes. Ocean is currently excluded because there is (or, was) a map for the county available elsewhere.

Which rail services routes are not on this map?

Currently not on the map (as of April 2012): PATH, Newark Light Rail, RiverLINE, SEPTA.

Why did you create this?

Why not?

How?

Like any map, you need information to display on the map. For bus routes, that's the actual routing of the route. Since buses go on roads, the obvious choice is to get the road data and display that. I'm not rich, so I can't get the raw data from the data sources that are out there. Besides, info that complete is not really needed. Ideally NJ Transit could give me that info in an electronic form. If they had that, I'm sure they would have made their own map by now...

So, Google Maps will give you directions from point A to point B, with a number of points in between. I did that. Like a hundred times. (well, it'll be closer to thousand times when I'm done...) Once I had the route laid out I exported the route into a KML file. (add &output=kml to the end of the "link to this page" link that Google Maps provides to get a KML file). A single bus route can have anywhere from one (rare) to ten KML files for all of the route variations and one-way road variations.

Those KML files were opened into Google Earth and the direction markers were removed and multiple KML combined into one KML for each route. I also mucked with the routes and remove extraneous, unexplained detours that didn't show up in Maps; and added in routings that can't be done in Maps (into bus depots, park-n-rides, etc).

Update (Aug '08): Because of the various copyright issues with using the above method, I now have the routings based on other data that's less restrictive. Besides being much more detailed than the Google data I don't have to worry about nicely-worded take down notices from Google...

Now that I had all of these KML files for each route I needed to combine them into one map. I didn't want to overlay one route over another just because they went on the same road (the Lincoln Tunnel for example), so I created a method for offsetting each route relative to every other route on the same road. Remember trigonmetry? Neither did I. But, I bit the bullet and relearned it and implemented that using Perl. After a few tries it "worked" and was "good enough". Then, markers were needed to show which route is which color, so that Perl program generated the markers (using GD) and placed them on the map at the needed latitude/longitude. In the end the script outputted modified KML files and one big master KML file with everything.

I'll skip over the steps where I tried displaying these individual KML files or the master KML file as an overlay in Google Maps. It barely worked, but no one would use the site if I stuck with it. "Tile overlays" were needed instead.

So another Perl program was written to plot out the KML files into one big graphic and cut it up into individual tiles. I found out very quickly that NJ is very big and my brand new computer didn't have the memory to make a graphic large enough to cover it, even at relatively modest zoom levels. The program was rewritten to split the difference between what my computer could do while still only plot the master KML a limited amount of times. It takes quite a while to run...then I still have to FTP all of those little files out to Arizona where this server lives.

Now (May '08) I'm going back and adjusting the points so they line up more neatly, as well as expanding it to cover more regions of the Garden State. Be sure to check out the other stuff on this site!

Northern NJ map Version History

Version 10: 2008-Jun-15: Initial numbered version. Changes include: limited service markers, NJT164 route fix in Saddle Brook, many behind-the-scenes programming optimizations, line thickness changes at higher zoom levels.

Version 11: 2008-Jun-29: Added in-map links to the Central NJ/Middlesex County map and jerseymap.org.

Version 12: 2008-Aug-01: Updated routings to use different underlying geocoding data to avoid copyright issues.

Version 13: 2009-Apr-11: Modified page for better navigation.

Version 14: 2009-Jul-04: Added new route NJT30, modified routes NJT39 and NJT6.

Version 15: 2009-Dec-05: Added NJTGO28.

Version 16: 2010-Apr-01: Many existing routes were renumbered by NJT.

Version 17: 2010-Jul-09: Added NJT353, NJT890, NJT891, NJT966, MCM1. Removed: NJT305, NJT351, others.

Version 18: 2010-Jul-17: Added MCM2, MCM3, MCM10. Added provider links for each non-NJT route.

Version 19: 2010-Sep-04: NJT163, NJT164, NJT165, NJT168, NJT702 changes.

Version 20: 2010-Sep-30: MCM route restructuring (MCM1, MCM2, MCM3, MCM10 become NJT871, NJT872, NJT873, NJT874, NJT875, NJT880). NJT966 split into NJT878, NJT879.

Version 21: 2011-Jan-08: Added NJT329. Modified NJT160, NJT320.

Version 22: 2011-Feb-03: Modified NJT87. Removed HOBUP and HOBDWN, replaced with HOBRHP, HOBGHP, and HOBBHP.

Version 23: 2011-Sep-03: Corrected NJT165. Modified NJT13, NJT124, NJT129, NJT872, NJT873, NJT875, NJT880, NJT879.

Version 24: 2011-Oct-30: Added NJT119 (old Red & Tan/Coach USA 99S)

Version 25: 2012-Feb-07: Updated NJT197

Version 26: 2012-Feb-18: Removed the heatmap, moved opacity controls, enlarged route buttons

Version 27: 2012-Apr-29: Added NJT rail services, Hudson-Bergen Light Rail, PATCO.

Central NJ map Version History

Version 10: 2008-Jun-15: Initial numbered version. Changes include: many behind-the-scenes programming optimizations, line thickness changes at higher zoom levels.

Version 11: 2008-Jun-29: Added in-map links to the Northern NJ map.

Version 12: 2008-Jul-03: Added 60s and 830s buses

Version 13: 2008-Jul-05: Renamed from 'Middlesex County' map. Added delay before loading marker images to allow map to load faster on some IE versions. Added MCAT routes, many NJT 130s routes, NJT62, NJT68, US 130 Shuttle, NJT307, NJT317, NJT978, NJT979, NJT980, and Somerset Scoot routes.

Version 14: 2008-Aug-01: Updated routings to use different underlying geocoding data to avoid copyright issues.

Version 15: 2009-Apr-11: Modified page for better navigation.

Version 16: 2009-Jul-04: Modified routes NJT836 and NJT837.

Version 17: 2009-Dec-05: Modified routes NJT68, NJT134, NJT138.

Version 18: 2010-Apr-01: Many existing routes were renumbered by NJT.

Version 19: 2010-Jul-09: Modified NJT132, 139 routings due to service changes.

Version 20: 2010-Jul-17: Added MCTM6. Renumbered other Mercer routes to match new numbering scheme. Fixed color for NJT67 so it doesn't overlap with NJT136. Added provider links for each non-NJT route.

Version 21: 2011-Jan-08: Modified NJT67.

Version 22: 2012-Feb-18: Removed the heatmap, moved opacity controls, enlarged route buttons

Version 23: 2012-Apr-29: Added NJT rail services, Hudson-Bergen Light Rail, PATCO.

Southern NJ map Version History

Version 10: 2008-Jun-15: Initial numbered version. Changes include: limited service markers, many behind-the-scenes programming optimizations, line thickness changes at higher zoom levels.

Version 11: 2008-Jul-05: Renamed from 'Atlantic City' map. Added delay before loading marker images to allow map to load faster on some IE versions.

Version 12: 2008-Aug-01: Updated routings to use different underlying geocoding data to avoid copyright issues. Added 25 new routes.

Version 13: 2009-Apr-11: Modified page for better navigation.

Version 14: 2010-Jul-09: Added NJT137, NJT404, NJT405, NJT412.

Version 15: 2010-Jul-17: Added NJT417, NJT452, NJT453, NJT459, NJT463, NJT468. Removed BURB3, BURB5. Added provider links for each non-NJT route.

Version 16: 2011-Jan-08: Modified NJT502.

Version 17: 2011-Feb-03: Modified NJT405, NJT407.

Version 18: 2012-Feb-18: Removed the heatmap, moved opacity controls, enlarged route buttons

Version 19: 2012-Apr-29: Added NJT rail services, Hudson-Bergen Light Rail, PATCO.

What transit providers are shown on the map?

I'm concentrating on services run by NJ Transit and municipalities or counties at this time (Jul '08). The following are currently on the map, and more are being added as I find them:
Northern NJ map:
New Jersey Transit
City of Hoboken
Central NJ map:
New Jersey Transit
Greater Mercer Transportation Management Association (select routes)
Somerset County
Middlesex County
Southern NJ map:
New Jersey Transit
Rail services (all maps):
New Jersey Transit
Port Authority Transit Corporation (PATCO, not PATH)

NJ Bus Map
Northern NJ | Central NJ
Southern NJ | Park & Rides
How to use
About
Under construction!