[HN Gopher] City Roads: A tool to draw all roads in a city at once
___________________________________________________________________
City Roads: A tool to draw all roads in a city at once
Author : gaws
Score : 431 points
Date : 2024-12-21 18:16 UTC (1 days ago)
(HTM) web link (anvaka.github.io)
(TXT) w3m dump (anvaka.github.io)
| tekno45 wrote:
| Idk how long itd take normally so just kinda neat.
|
| But i love the slack in the dragging around the map.
| crabmusket wrote:
| I have a map of Brugge (Bruges) from this tool printed off on my
| wall. It's a great concept!
| anvaka wrote:
| oh wow. Glad you liked it!
| Amorymeltzer wrote:
| Neat! Lovely to look at. Is it caching just the most popular or
| previous searches?
|
| The option to print on a mug with one link is pretty neat! Might
| actually do that...
| HellsMaddy wrote:
| From the README[0]:
|
| > To improve the performance of download, I indexed ~3,000
| cities with population larger than 100,000 people and stored
| into a very simple protobuf format.
|
| [0] https://github.com/anvaka/city-roads
| mulhoon wrote:
| Simple and effective. Beautiful to look at.
| semi-extrinsic wrote:
| Would be nicer if it would distinguish (just varying line
| thickness) between footpaths, roads, highways etc. Many European
| cities look messy in this view.
|
| IMO, prettymaps is quite a bit better:
| https://github.com/marceloprates/prettymaps
| noiv wrote:
| It's JavaScript and exposes an extensive API via console:
| https://github.com/anvaka/city-roads/blob/main/API.md#loadin...
| walski wrote:
| I get a 403 for some cities. E.g. Wyk (auf Fohr) returns 403 on
| this .pbf resource: https://city-roads.s3-us-
| west-2.amazonaws.com/nov-02-2020/36...
| walski wrote:
| Oh damn, I thought this is a Show HN :D
| anvaka wrote:
| appreciate the feedback - I'll take a look
| peppertree wrote:
| There's also a Figma plugin that can import OSM as vector.
| https://www.figma.com/community/plugin/1251030017228239072/v...
| okasaki wrote:
| Great idea. Might print some and hang them.
| dotancohen wrote:
| I was thinking that this would be a great gift, to print a set
| of dinner plates with every place that I know the couple lived
| in. Each plate a different city.
|
| Though I'm a bit worried about paint near food, especially for
| custom jobs.
| hiatus wrote:
| Link to the github project: https://github.com/anvaka/city-roads
| Liftyee wrote:
| In the age of bloated resource hogs, I was pleasantly surprised
| that this rendered with no perceptible lag or stuttering, even on
| my phone. Impressive how everything is drawn so efficiently.
| mrbluecoat wrote:
| I agree. The pinch zoom was also buttery smooth. Nice job!
| kayvulpe wrote:
| Incredible! May take a while for a big city, but well worth the
| wait.
| latkin wrote:
| In case others gave up, it took about 2.5 minutes to load my
| (midsize city) hometown from OpenStreetMap. So hang in there.
| sandworm101 wrote:
| I'm at 10 minutes now, for a town of <15k. Render time might
| depend more on total area than number of lines to draw. Update:
| gave up after 20min. Something might be wrong with the
| particular city.
| fnordpiglet wrote:
| Render time for Seattle is a blink of the eye which has both
| area and density. I think the time people is observing is
| loading the raw data from open street map itself.
| flufluflufluffy wrote:
| About 2 seconds for me to load and draw Los Angeles. It's
| definitely the load time/network latency, depending on
| where it's loading from. This is amazing! I might use it
| for a custom map or something
| Capricorn2481 wrote:
| Because they cache the biggest cities in the world.
|
| > To improve the performance of download, I indexed ~3,000
| cities with population larger than 100,000 people and
| stored into a very simple protobuf format. The cities are
| stored into a cache in this github repositor
| remram wrote:
| Probably going to hit the paradox here, where most people are
| going to request a place where many people live, even though
| most places are small.
|
| I probably have no chance, living in NYC.
| zactato wrote:
| I would expect the opposite with a basic LRU cache before the
| fetch to OSM
| remram wrote:
| That's fair unfortunately it's not what happened :-(
| dotancohen wrote:
| I'm in a city well under 50,000 people not in the Americas
| nor Europe. The site gave a message that it was retrieving
| the data from OSM, then rendered the map faster than the
| browser would render a png. Very impressive.
| NavinF wrote:
| That's surprising. It only took me a couple of seconds to load
| NYC on my iPhone over 5G
| zipping1549 wrote:
| Some cities are cached and NYC is going to be in it for sure.
| imnotlost wrote:
| Love it! I did a few cities where I've lived and it brings me
| back.
| elbac wrote:
| This is wonderful. Great job.
| rl_for_energy wrote:
| One of those simple charming tech experiences. Thanks for
| sharing!
| JSR_FDED wrote:
| I was intrigued by how many of the 3000 cities you've cached I
| had heard of. You used population size >100k as cutoff, it would
| be interesting to compare how many cities someone has heard of
| with their population size.
|
| This would be a fun metric to rate someone's "global
| orientation".
|
| Only recognize the cities with >1M people? Low GO score (or more
| charitably, high Local Focus score :-)
| rplnt wrote:
| There are many quizzes like that on Sporcle.
| dudeinjapan wrote:
| Well done! I tried Tokyo, and discovered it looks
| funny/disjointed because several far away islands like
| Hachijojima are part of Tokyo municipality.
| larodi wrote:
| This is the level of projects that our GIS students deliver at
| the end of 60 hours of non-mandatory class. Perhaps 70%+ of
| visitors of HN can do it if they decide to, it is just an
| interdisciplinary area that not many explore. A project of
| similar complexity in the WEB or ML are would never get upvoted
| so much.
| Capricorn2481 wrote:
| Is this not a project in the web? Or what would be a web
| project of similar complexity?
| matsemann wrote:
| What is your point? That it's "undeserved" and that's bad
| somehow?
|
| I think it was a cool visualization and fun to see. And still,
| 60 hours of research is more than I would put into it, so even
| if I technically was able to I would've never gotten around to
| actually do it. So nice to see something else than what I
| normally work with, even if it might be trivial in that domain.
| aembleton wrote:
| Are there are any tools that your GIS students use to create
| this? Or is it all code? Any libraries that you can recommend?
|
| I was thinking that I would query the global database for roads
| and then take the nodes and their coordinates. Then I would
| need to convert those coordinates into points on a canvas and
| draw lines between them.
|
| How would I get the boundaries of a city? Some places I've
| tried are just a point in osm. Is there some other data source
| you would use for that?
| cpa wrote:
| A combination of overpass turbo and a LLM would get you
| started pretty quick. Regarding GIS tools, download QGis (it
| sucks on mac but is okay on linux or windows)
| Defenestresque wrote:
| The hobby-sized projects/videos on your Twitter are mesmerizing:
| https://x.com/anvaka
|
| Talk about a true hacker mindset. Great bloody job!
| pmg101 wrote:
| If you choose Brighton and zoom in on Hove Park you see the
| fingerprint maze there very beautifully rendered as a vector,
| amazing OSM has this detail!
| thih9 wrote:
| OSM content attribution is missing (either not added or getting
| clipped) when the data is exported for printing on a mug.
| matsemann wrote:
| Do you need the attribution when you print it on a mug for
| personal use?
| maxerickson wrote:
| That's the terms of the ODBL (produced work in section 4).
|
| Pedantically, in this case, it isn't personal use either (the
| site is using the produced image to offer a mug for sale).
|
| Note that this isn't necessarily an endorsement of those
| terms.
| cjs_ac wrote:
| * Greater London excludes the City of London
|
| * Footpaths and cycleways and shown as roads but railways are not
| stevage wrote:
| So, it's a filter on OpenStreetMap to retrieve all ways with a
| highway=* tag, and draw them identically?
|
| I think a much faster and easier way to implement this would be
| using existing sources of vector tiles, but scaled down. You
| could probably even just use Mapbox GL JS, and scale the whole
| canvas down by a factor of 4 or something, to avoid the issue of
| small roads not being present at city-scale zoom levels.
| robinduckett wrote:
| It seems to render each lane of the roads in my city seperately.
| It looks good at maximal zoom but worse if you zoom in.
| dmje wrote:
| I love this. So much, I bought a mug. Hope you get a cut!
| jameshart wrote:
| It's a cool project, well executed.
|
| But I am a bit confused about the way it's described. Is it
| unusual to see all the roads in a city drawn at once? Is the
| concept of 'visualizing all the roads in a city' one that we
| don't have a name for? Is the creator from a parallel dimension
| where they only have tools that let you see one street at a time?
| kaveet wrote:
| Google Maps and most other maps will happily hide streets
| depending on your zoom level
| TomWhitwell wrote:
| IIRC these are SVGs and excellent if you have a plotter
___________________________________________________________________
(page generated 2024-12-22 23:01 UTC)