[HN Gopher] Show HN: I built a transit travel time map
       ___________________________________________________________________
        
       Show HN: I built a transit travel time map
        
       This was something I built while trying to look for housing in
       Toronto that was decently transit-accessible to my office while
       still cheap.  The backend is written in Rust. It parses public GTFS
       data from transit agencies and performs a simple heuristics-based
       BFS on the bus lines to calculate how long to reach all points in a
       city.  The frontend uses React and Mapbox GL to render each
       individual road segment based on how long it takes to reach.  This
       project was a great excuse to learn Rust, deployments, and mapping.
       The source code is here if you are interested:
       http://github.com/econaxis/time2reach
        
       Author : ng-henry
       Score  : 196 points
       Date   : 2023-07-24 13:49 UTC (9 hours ago)
        
 (HTM) web link (map.henryn.xyz)
 (TXT) w3m dump (map.henryn.xyz)
        
       | anotheryou wrote:
       | Lovely!
       | 
       | An more general alternative (different travel modes and all the
       | cities I think, possibly less accurate, no lovely heat-map
       | style): https://app.traveltime.com
        
       | ksitu0 wrote:
       | THIS IS VERY COOL! do you have more cities that you plan on
       | adding in the near future?
        
       | guessmyname wrote:
       | I get sad every time I return back to America from Asia because
       | of how small the public infrastructure is in many parts of
       | America compared to Asia.
       | 
       | If anyone has lived or at least visited places like Tokyo, Japan
       | or Shanghai, China, you probably understand what I am referring
       | to.
        
         | ghaff wrote:
         | Asia is also home to cities with some of the most congested
         | sprawl with mediocre (at best) public transportation in the
         | world. Tokyo and Shanghai are great. Somewhere like Jakarta
         | less so.
        
         | giovannibonetti wrote:
         | Population density makes a huge difference. The more people
         | live in a city, the more funds the government has to invest to
         | get a better transportation system.
         | 
         | In general, population density in East Asia is far higher than
         | in the US.
        
           | akamaka wrote:
           | There's not much correlation between density and quality of
           | public transit.
           | 
           | If you look at a top 10 list of best transit systems, you'll
           | see medium density cities like Oslo and Helsinki right beside
           | Tokyo and Hong Kong.
           | 
           | Or within the USA, compare Miami to Seattle. The only
           | difference is that one city decided to build mass transit and
           | the other didn't.
           | 
           | It's entirely possible to build an appropriate transit system
           | for any type of city.
        
             | ghaff wrote:
             | Past a certain density point probably. It also helps if
             | there's some degree of concentration where people want to
             | go even if the city as a whole is only medium density.
             | 
             | However, things get too spread out and it breaks down--
             | including that transit runs on a sufficiently spaced-out
             | schedule that people with a choice just don't want to take
             | it.
        
               | sfink wrote:
               | I was just in Paris. It was a major eye-opener for me to
               | observe people on the Metro when there was a train
               | approaching while I was a little ways away from the
               | platform. Very few people rushed to make it! It initially
               | made me doubt that I understood how the train worked--did
               | they know something I didn't, and this train wouldn't
               | actually stop where I needed? But no, it was just that
               | they knew that if they missed the train, they would only
               | need to wait a whole 3 minutes for the next one.
               | 
               | Coming from the SF Bay Area, if you miss a train you'll
               | probably have a minimum 15 minute wait (at least at the
               | stations and times I use), often 2-3x more. People run
               | down the stairs to the platform, shove their way in, and
               | often block the doors from closing if they're squeezing
               | in at the last minute (which extends the last minute,
               | making the train later for the next stop.)
               | 
               | Also, "taking the train" doesn't just mean showing up at
               | the train station. It means checking the schedule and
               | timing it so you show up at the right time. I don't just
               | walk from place to place, using the train as a way of
               | getting around as needed. I plan it out. Or I don't, and
               | use a car instead, which everything subtly encourages.
               | 
               | I agree, frequency makes a huge difference in actual
               | practice.
        
               | ghaff wrote:
               | For all its recent problems, the Boston subway isn't
               | _too_ bad. I certainly don 't check schedules.
               | 
               | But the commuter rail out to me only runs about once an
               | hour. I can deal with that for a "9 to 5" work thing
               | where driving would have to deal with horrific traffic
               | anyway. But it's a total non-starter for an evening event
               | where I would have to time my return including possibly
               | dealing with subway variance to a commuter rail station.
               | (And it takes significantly longer than driving at that
               | time of day anyway.)
        
           | tsudounym wrote:
           | This is a chicken and egg problem, stop making excuses for
           | Western governments. Nearly all US cities had streetcars and
           | dense walkable downtowns. There are pictures of this. They
           | were destroyed in the 1950s due to pressure from car/oil
           | lobbies, as well as eager house buyers who wanted cheap FHA
           | loans. (Only available to whites)
           | 
           | Europe is not immune either, they would've followed the US's
           | footsteps entirely if it weren't for the 1973 oil shock,
           | which hit them harder than the US.
        
             | rootusrootus wrote:
             | > They were destroyed in the 1950s due to pressure from
             | car/oil lobbies
             | 
             | Popular explanation but largely false. They were destroyed
             | because people quit using them.
        
               | theironhammer wrote:
               | A decent article on their demise.
               | https://www.vox.com/2015/5/7/8562007/streetcar-history-
               | demis...
        
               | anon25783 wrote:
               | Why and how did people quit using them? Suppose you're in
               | a world where the interstate highway system hasn't been
               | built and subway trains are the dominant mode of
               | transportation, and you would like to stop taking trains
               | to get to places, what do you do? Walk? Bike? Ride a
               | horse? Drive offroad in a car with a manual transmission
               | and no seatbelts or airbags, with no gas stations in
               | between?
               | 
               | Seems like you'd be S.O.L. unless the government kindly
               | free-markets a continent-wide network of paved roads,
               | with conveniently placed roadside stops along the way
               | where they _sell gasoline_. Can 't imagine why they would
               | undertake such an exorbitant public works project when
               | the transcontinental railroad already exists; it's not
               | like the government is disproportionately influenced by
               | any industries that would very obviously materially
               | benefit from such a thing.
        
               | ghaff wrote:
               | But it's far more satisfying to blame some change you
               | don't like on $EVILCORP than a more complicated narrative
               | that revolves around people as a whole preferred
               | something different so it didn't really make sense for
               | government/a company to keep pouring money into a pit to
               | keep a small minority happy.
               | 
               | The story often goes that someone destroyed a fully
               | operational system for profits when in fact the system
               | was badly deteriorated and not really used a lot.
        
               | tsudounym wrote:
               | Do you REALLY think gasoline subsidies and government
               | backed 97% LTV mortgages is a free market? People were
               | coaxed out of cities with very generous subsidies as well
               | as race baiting (redlining)
        
               | ghaff wrote:
               | People moved out to the suburbs for a lot of reasons--not
               | least of which was the post-war baby boom. The US
               | government certainly didn't discourage it (though they
               | were arguably pursuing policies the majority of the
               | population wanted) and the exodus added fire to a self-
               | reinforcing cycle of urban problems (including race-
               | related ones)which lasted at least through the 1980s. And
               | arguably we could see movement out of at least some
               | cities again.
               | 
               | I'm not especially pro-suburbia--I live in an
               | exurban/almost rural location. But I think it's perfectly
               | understandable why many people wouldn't live in a city
               | given a choice which they increasing had post-WWII in the
               | US.
        
         | nashashmi wrote:
         | I hope you are not comparing American suburbs to Asian urban
         | communities. This is a common misconception among immigrants
         | that they compare commuting opportunities of suburbia to urban
         | cities in Asia.
        
         | samstave wrote:
         | I have maintained that any US Public Transportation employee
         | with any amount of agency/authority should be required to go to
         | SEA (singapore, HK, Shanghai, Tokyo) and be required to go to
         | meetings which are far from their hotel but they must get there
         | via public transport only...
         | 
         | This will make their requests for more money/raises/etc seem
         | absolutely insane when you compare what these
         | countries/cities/agencies do WRT to transporting millions of
         | people efficiently every single day - and not to mention just
         | how clean such systems are.
         | 
         | When you go through stations in HK - you see well-uniformed
         | cleaning folks all over the place.
        
           | robjan wrote:
           | HK has an interesting business model in that the MTR is
           | majority owned by the government and the government grants
           | the land on top of train stations to MTR. MTR then generally
           | builds shopping malls, offices and residential developments
           | e.g LOHAS park, there making it a property company which
           | operates (very profitable) rails between its properties.
           | Hence, the average person not only travels on the MTR but
           | also spends money at MTR Malls and may live and/or work in an
           | MTR property. MTR corporation also provides consultancy
           | services and even runs other railways in other countries e.g
           | the Elizabeth Line on the London Underground.
        
         | charlieyu1 wrote:
         | Last time I went to Japan, they had announcements of apologies
         | about severe delays. The delay was less than 5 minutes.
         | 
         | Today I'm stuck on a tram for an hour and the tram company did
         | not even tell us what happened or when would we be unstuck.
        
       | coding123 wrote:
       | I seems to be slowing down quite a bit after I double clicked, or
       | maybe HN visitors coming in. Is this implemented with a Graph
       | database?
        
       | lovegrenoble wrote:
       | Beautiful UI. Is there any practical use for it?
        
         | ng-henry wrote:
         | ~~getting job interviews~~
         | 
         | haha just kidding...I'm unsure of whether this is useful at all
         | to transit companies, but one goal of this project is to make
         | transit cool and help people understand their cities better.
         | 
         | I originally built this to help me find housing in Toronto, so
         | deciding where to live could be another good use of this tool
         | :)
        
       | ComputerGuru wrote:
       | It's only the five cities listed at the top, right?
       | 
       | (I initially thought they were just bookmarks/shortcuts to some
       | good demos then I realized they influenced the traffic sources
       | checkbox at the bottom so they had to determine what the map
       | showed rather than merely index it.)
        
         | ng-henry wrote:
         | Yes that's right. I do plan on adding other cities in the
         | future, but these are the ones I've chosen because I've lived
         | in them or I think they have a cool transit story.
        
           | ComputerGuru wrote:
           | Cool - and I can't argue with the rationale! Here's a vote
           | for Chicago: it's considered to have one of the best public
           | transportation systems in the USA and it's rather different
           | from the east coast models. Might be fun!
        
       | dabreegster wrote:
       | Super awesome! I like how you just color roads to show time. When
       | you calculate polygons to try and cover the whole area in some
       | 5-10 minute bucket, you can wind up with all sorts of odd holes
       | far away from roads _. Keep it simple.
       | 
       | _ https://github.com/a-b-street/abstreet/pull/1075
        
       | dddddaviddddd wrote:
       | Beautiful. I did something similar recently with the Google Maps
       | Distance Matrix API, but I like that this doesn't require an
       | external API for every calculation.
        
       | martopix wrote:
       | The idea is very nice, useful for example when looking for a flat
       | that isn't too far away from work. However it doesn't really
       | work. My computer is powerful, and yet it lags so badly I can't
       | really get to use it. I also did not manage to change the
       | starting point.
        
       | gradys wrote:
       | I'd love to be able to get a print of the map with a customized
       | zoom level and origin point.
        
       | eddy162 wrote:
       | This is super super cool! This kind of visualization is so much
       | more useful for finding a transit-friendly spot to live than the
       | generic TransitScores real-estate websites have. Would be nice if
       | the frequency of bus routes could be visualized too, and hope you
       | find a way to add more cities painlessly. Having worked in
       | transit planning, this is really useful for network gap analysis
       | - like finding areas where connectivity could be improved.
        
       | waterpowder wrote:
       | Great work! Would it be complex to add plain walking, or cycling
       | options?
        
       | throwaway737248 wrote:
       | This is awesome - https://www.mapnificent.net/ is a similar
       | project (also open source). Might be cool to collaborate on data
       | sources?
        
       | postmortembees wrote:
       | Does "double click anywhere" mean "double click anywhere within
       | these N cities"? I couldn't initially tell if they were examples
       | or limits.
        
         | ZeWaka wrote:
         | limits, the gtfs data is only set for those cities / transit
         | providers
        
       | [deleted]
        
       | Royaljj wrote:
       | Nice job with the map! It was great seeing your presentation at
       | symposium!
        
       | iharhajster wrote:
       | Not working in all countries? Nice work, though.
        
       | CalRobert wrote:
       | I really like your map styling! It's slow but nice when working.
       | 
       | People interested in this might also enjoy:
       | https://www.mapnificent.net/
       | 
       | Or if you're in Ireland: gaffologist.com (disclaimer - I made
       | this and it only focuses on rail)
        
       | jablongo wrote:
       | Love it, but I'm pretty sure you're missing ferry routes in the
       | NYC calculations (which are public). It also might be worth
       | including Citibike as an optional additional method.
        
       | baq wrote:
       | Public service announcement - these kind of maps are known as
       | isochrone maps and they're anything but new, but are (IMHO
       | criminally) unpopular. They're extremely helpful when house
       | hunting.
       | 
       | https://en.wikipedia.org/wiki/Isochrone_map
        
         | nashashmi wrote:
         | They are also popular when establishing an office space, or
         | when recruiting en masse for job opportunities/
        
         | cridenour wrote:
         | Agreed. It took weeks of researching to find this term when I
         | was looking to optimize travel time search. Once I did,
         | everything became easier! Ended up forking Open Transit
         | Planner, this was back in 2015. Turned 40 minutes real estate
         | searches into 40ms or so.
        
           | benced wrote:
           | Wouldn't have helped you back then but LLMs are _spectacular_
           | at giving you the term that you don't really know what to
           | google for.
        
             | nashashmi wrote:
             | Agree. I tried this with figuring out the name of a logical
             | fallacy. And it led to a rabbit hole of info.
        
           | all2 wrote:
           | What is this _Open Transit Planner_ and where do I find it?
        
             | notpushkin wrote:
             | I believe they're talking about
             | http://www.opentripplanner.org/.
        
             | [deleted]
        
           | syntaxing wrote:
           | Is your fork available somewhere cause it sounds awesome!
        
       | dbelford wrote:
       | Is there a word/map for the transit accessibility for each point
       | (1m^2?) on the map and drawing that? (maybe an integral of the
       | isochrone?)
       | 
       | E.g. pick a point on a map, sum the area of the isochrone
       | (30minute area? weighted sum?) to get a value at that point. Then
       | redraw a heatmap of those points.
        
       | nashashmi wrote:
       | Great job. I feel like I have seen other iterations of this for
       | NYC with much limited data.
       | 
       | Input: NYC is missing PATH train transit system. It might also be
       | missing Port Authority Bus Terminal transportation methods.
        
       | forrestthewoods wrote:
       | Nice! Once upon a time I did something very similar.
       | 
       | https://www.forrestthewoods.com/blog/visualizing_commute_tim...
       | 
       | AFAICT the _only_ reliable source of commute and transit times is
       | Google Maps. To be useful it requires real traffic data.
       | Unfortunately Google jacked up the prices way too high to be
       | useful.
       | 
       | My dream is a service for building isochrone maps with full
       | support for walking/biking/transit/driving.
        
         | ackfoobar wrote:
         | I used the walkshed map (also supports bike, car, and transit)
         | to decide which part of the city to live in.
         | 
         | https://app.traveltime.com/search/0-lat=43.64399&0-lng=-79.3...
        
       | arafalov wrote:
       | I want very similar to this but for shopping without a car.
       | 
       | Like, if I want to buy something big from Walmart or Costco (to
       | keep to generic shop names) and it does not matter if I am on a
       | train/metro/subway for 10 minutes or 20 minutes, but it totally
       | does matter number of transport switches of bus->subway) and
       | walking is really bad.
       | 
       | So, it would make sense to go to a very distant shop, but that is
       | right opposite the direct train.
       | 
       | Does anything like this exist (for any city really)? The
       | algorithm must be quite similar, but with different graph steps
       | weighted differently depending on method of movement.
        
         | ng-henry wrote:
         | Not sure if something like this exists yet, but certainly do-
         | able within my implementation.
         | 
         | For example, when choosing the best route, it penalizes every
         | transfer by 120 seconds [1]. Therefore, a route that takes 2
         | minutes longer is equivalent to one transfer.
         | 
         | It'd be cool to have a tool where you can dynamically change
         | these settings, and maybe even have different transfer
         | penalties depending on if you're transferring inside a station
         | vs walking outside.
         | 
         | [1]:
         | https://github.com/econaxis/time2reach/blob/main/src/formatt...
        
       | graypegg wrote:
       | This is great! I actually needed something like this right now.
       | I'm looking for a new job and a lot of the posts available are
       | in-office, so being able to set some boundaries on commute time
       | is exactly what I need to do. Thanks for including mtl!
        
       | gradys wrote:
       | This is awesome! I'd love to be able to bookmark this with a
       | specific starting location set in the URL.
        
       | [deleted]
        
       | femboy wrote:
       | Tried some EU countries but did not work. What country is
       | supported?
        
         | j_leboulanger wrote:
         | Works with Paris at least
        
         | ng-henry wrote:
         | Yep the only cities that are supported are on the list at the
         | top: Toronto, Montreal, Vancouver, New York, and Paris.
         | 
         | Adding support for other cities is a pain in the butt to find
         | the corresponding GTFS, upload the vector tiles to postgis,
         | etc.
        
           | hoosieree wrote:
           | I just zoomed out from Toronto and tried Waterloo/Kitchener
           | and it worked... [edit] but apparently I was just lucky.
        
             | ng-henry wrote:
             | Hahaha you discovered it! Originally I had waterloo because
             | I study there, but I removed the city from the picker as I
             | thought HN wouldn't know what Waterloo was :).
             | 
             | It even supports GO buses between Waterloo <-> GTA
             | (unfortunately the max is 3 hours so you can't get
             | everywhere just yet).
        
       | jedberg wrote:
       | Pull up San Fransisco, double-click on the Sunset, get depressed
       | at how little distance you can cover in 45 minutes.
        
         | nestorD wrote:
         | I believe the author is missing some data sources (bus lines?).
         | There are areas I know are reachable within 30 minutes from
         | downtown Berkeley that do not appear on the map.
        
       | [deleted]
        
       | TheBigRoomXXL wrote:
       | I open it on mobile and got an entirely white page
        
         | ng-henry wrote:
         | Oops! I was only able to test it on my iphone and the devices
         | in the Chrome browser simulator :(. If you're willing, what
         | phone/browser are you using?
        
       | ikawe wrote:
       | Very nice! Do you have any documentation for how to add another
       | city or transit region?
       | 
       | I work on some of the rust libraries you've used. If you'd like
       | to ask questions about rust+geo or do a show & tell, consider
       | joining us in the georust discord:
       | https://discord.com/invite/Fp2aape
       | 
       | I'm also always interested to hear new people's experience
       | building real things with our libraries. What were the hangups?
        
       | o10449366 wrote:
       | This is a great idea. I can only speak to NYC, but the data
       | sources don't give good recommendations. Optimal routing for time
       | in NYC is tricky though and relying on only mapping services and
       | not a combination of walking, biking, buses, and subways leads to
       | longer travel times than necessary.
       | 
       | For example, there are many parts of Brooklyn where no transit
       | lines are directly connected and you have to go into Manhattan
       | first, meaning if you took the train it would take 1+ hours,
       | versus bus (30 minutes) or biking (15 minutes).
        
         | jwestbury wrote:
         | Have you used CityMapper? I haven't used it in NYC, but I use
         | in in London, and it's solved this problem much better than
         | Google/Apple Maps.
         | 
         |  _Edit_ : Though, CityMapper doesn't actually provide a travel
         | time map, alas.
        
         | ng-henry wrote:
         | Experienced this problem too in Toronto, when Google Maps
         | wouldn't give transit + bike directions (which are often much
         | faster than transit + walk). As you know the city more though
         | these things become intuitive and Google Maps becomes less
         | useful.
         | 
         | I started using Transit App more often for the mixed-modes
         | routing. It even supports bike shares/scooters, so sometimes it
         | suggests new routes based on scooter -> subway -> scooter which
         | is much faster than bus -> subway -> bus.
        
       | bkor wrote:
       | The following site works for The Netherlands (not just
       | Amsterdam): https://mapitout.iamsterdam.com/
       | 
       | It has some minor limitations to select the time (has to one of
       | the predefined options). That can be worked around by changing
       | the URL parameter.
       | 
       | It can also map out multiple locations and see the overlap.
       | 
       | It's fairly useful to see where you want to live while taking
       | e.g. the office location into account. It gave me more options
       | than I thought I had, partly because I didn't think about small
       | towns with a train station.
        
         | ng-henry wrote:
         | Wow, this website is very pretty. It's similar to what I
         | envisioned when I built this project, but I wanted to make a
         | heatmap (of all possible times) rather than just an isochrone.
         | The little "islands" of fast transit access is also what I
         | wanted to show with my project too! It's cool to discover the
         | little spots near train stations that are cheaper but offer an
         | equivalent commute to the city center.
         | 
         | There's also https://www.chronotrains.com which was another
         | inspiration when building this project too.
        
       | vipshek wrote:
       | This is super cool! I particularly like that you render the route
       | along transit lines to reach each destination, which is
       | differentiated from other isochrone maps I've seen. I would love
       | to use this while hunting for apartments in a large city.
       | 
       | I do think there are a number of things you could do to improve
       | the UX here. Hope this doesn't come across as too harsh, but here
       | are some suggestions...
       | 
       | 1. Double-click to set origin makes sense, but hover to set a
       | destination is a bit weird, for two reasons: a. There's no way to
       | "lock" a destination by clicking, so I can't pick a route I want
       | to see and fix my view on it. The UI feels jittery as a result.
       | b. In some cases (I'm looking at NYC), loading the route to the
       | hovered destination hangs for several seconds. I don't know if
       | this is just an issue because your server is overloaded, but it's
       | a weird state to be in.
       | 
       | I'd consider: 1) adding a loading state when the route to the
       | destination is being computed, 2) enable clicking a point to lock
       | viewing that route, 3) maybe disabling the hover interaction
       | entirely, though if it were performant, it would be pretty nice
       | to have.
       | 
       | 2. The "arrival time" concept is a slightly odd. I'd prefer to
       | just see the amount of time it'll take to get to a destination,
       | rather than an arrival time based on a particular starting time.
       | I don't think anyone's going to use this to plan a specific route
       | at a specific time; instead, they'll use it to explore locations
       | of interest, and explore how long it'll take to get to various
       | destinations. I see you show the trip duration in the bottom-
       | left, but having it be an arrow pointing to a gradient spectrum
       | is much harder to parse than just saying "27 minutes".
       | 
       | 3. The fade effect on the side panel is a bit weird. It does draw
       | more attention to the map, but the side panel is still occluding
       | my view, and having it faded just makes the text very hard to
       | read. I'd consider making it un-faded, but adding some way to
       | collapse it.
        
         | ng-henry wrote:
         | Hey, thanks for the feedback! Greatly appreciated.
         | 
         | 1. Yes I think "locking" makes sense. The entire action of
         | viewing the paths to different destinations still needs to be
         | polished up, especially for the mobile version as well. When I
         | tried it before posting to HN it was instant (30ms) but now it
         | seems to be extra laggy because the CPU is maxed. I just
         | upgraded the server from 4 -> 16 cpus, so let's hope that does
         | something haha.
         | 
         | 2. 100%
         | 
         | 3. Agree as well. I chose the easiest solution when developing
         | (and I also develop on a large monitor so it's harder to notice
         | the occlusion), but adding a hide toggle would certainly have
         | been better.
        
       ___________________________________________________________________
       (page generated 2023-07-24 23:01 UTC)