Map To Poster – Create Art of your favourite city

(github.com)

157 points | by originalankur 9 hours ago ago

49 comments

  • Helmut10001 5 hours ago ago

    San Francisco looks nice, but there seems to be a problem with the projection in some of the sample images. It looks as if it isn't UTM but a global sphere projection, which isn't suitable for local renders. It's suspicious that the word 'projection' isn't mentioned in the Readme.

    • jasongill 4 hours ago ago

      This is an artistic project to make a fun and artsy poster, so it's not at all "suspicious" that the map projection is not critical to the artwork.

      It also appears to be open source, so perhaps you can open a pull request with your improvements based on your cartographical experience.

      • Helmut10001 4 hours ago ago

        You are absolutely correct. Suspicious was the wrong word and I did not mean to criticize the author or the work.

    • jlarocco 3 hours ago ago

      It looks like the final images have some kind of vignetting to make the corners and outter edges fade away. Probably grabbing OSM tiles and doing some image processing.

      Looks neat!

  • stanko an hour ago ago

    There is a related project which I used several times:

    https://github.com/anvaka/city-roads

    Edit: it outputs SVGs and you can try it online. Anvaka (author) has other really cool dataviz projects.

  • mft_ 8 hours ago ago

    I believe (from a quick code check on my phone) it should be possible to output the images to SVG with a little tweak, thanks to your use of matplotlib?

    Is there a reason you’ve defaulted to PNG that I’m missing?

    • originalankur 8 hours ago ago

      Valid Point @mft_ plt.savefig(output_file, format='svg', facecolor=THEME['bg']) should do it. I will add a --format parameter and make the change.

    • Footprint0521 2 hours ago ago

      Holy heck exporting to PDF/SVG for large cities is laggy, just patched the repo and did it for one over half a million people and it’s insanely slow lol

      • originalankur 2 hours ago ago

        There is throttling in the code when making api request to respect the map provider as per their terms and conditions. Can make few thing parallel but it's a hobby project how many posters would one person want to generate?.

  • dylan604 2 hours ago ago

    What happens if there are multiple cities with the same name. Maybe this is a US specific problem, but there are many states with cities of the same name from another state. As a few examples:

    Salem, OR and Salem, MA

    Portland, OR and Portland, ME

    Springfield, IL and Springfield, MO

    Dallas, TX and Dallas, GA

    • originalankur 2 hours ago ago

      lol, I didn't even think of it. May be I should start taking country too. Edge case :-p

    • MengerSponge 2 hours ago ago

      Don't even get started on American cities named after world cities: Paris, Munster, London, Toledo, Memphis, Athens,...

      • tokai 2 hours ago ago

        Every country has those. There was some that found it very funny when Russia occupied New York last year (or last year again?).

  • nycerrrrrrrrrr 4 hours ago ago

    Does anyone have recommendations for how to actually print a poster from images like these?

    • jfengel 2 hours ago ago

      For what it's worth, I use Vistaprint. That's not based on an extensive comparison, just that it always works for me and seems comparable in price and quality to other services.

    • loloquwowndueo 3 hours ago ago

      For something DIY, Rasterbator.net can make you a poster-sized print in multiple sheets. You’ll need some elbow grease to assemble the print.

    • xnx 3 hours ago ago

      In the US, I've had good results with Staples

    • hirako2000 4 hours ago ago

      A good print on demand that delivers ?

    • dexterdog 3 hours ago ago

      dotphoto.com

  • hyperific 7 hours ago ago

    Also check out prettymapp

    https://prettymapp.streamlit.app/

  • tomashubelbauer 7 hours ago ago

    Three random themes for anyone who's Czech or likes Prague and doesn't want to set up the script locally: https://imgur.com/a/Ovg8mDW

    • xixixao 6 hours ago ago

      What’s up with the Zizkovska tower highlight?

    • originalankur 7 hours ago ago

      Looks beautiful. The gold+dark color does justice.

  • tianqi 8 hours ago ago

    That's splendid. I've long wanted to make a jigsaw puzzle out of Sydney's road map, so I can familiarise myself with the layout of roads while having fun. That way I can reduce my reliance on nav app and become one of those old-school drivers.

    • bobnamob 8 hours ago ago

      There's a reason Where 2 -> Google Maps happened in Sydney. The sheer number of one-way roads combined with the imposition of the harbour and the messy tunnel system make internalising Sydney navigation a life-long endeavour

  • japoneris 2 hours ago ago

    Looks amazing ! In my free time, i play with my laser cutting machine. It will save me some design time. Thanks

  • m-hodges 5 hours ago ago

    Etsy sellers devastated

  • Kwpolska 6 hours ago ago

    Pretty cool! It would be great if there was a way to set coordinates manually, since Nominatim can sometimes produce mediocre results. Also, would be nice to have a way to render the same map in all themes, not just one.

    • originalankur 2 hours ago ago

      The initial version were coordinates actually but then realised people mostly love their cities more than anything and it's easy that way. Will add this feature back as optional parameters.

  • simonebrunozzi 8 hours ago ago

    The map of Venice seems to be the only one whose image is "squeezed" horizontally. Wondering why.

  • emaro 8 hours ago ago

    I tried it in a python3 venv, but the download data step is stuck at 0% unfortunately.

    • NoboruWataya 4 hours ago ago

      The bar only updates once that entire step is complete (ie, if step 1 of 3 is downloading roads, it won't tell you what % of roads have been downloaded, but rather it will remain at 0% until all roads are downloaded at which point it will jump to 33%).

    • originalankur 8 hours ago ago

      It will work, give it time. Also default distance is 29000. Give distance of 10000 to see faster results. It certainly is working as many users have generated maps.

      • originalankur 8 hours ago ago

        Also note that as per their terms and conditions I need to give a user agent, so multiple users will be sharing same user agent right now.

  • stephenlf 6 hours ago ago

    This repo is fantastic. The README should be the gold standard for OSS. Not to mention how stunning the outputs are. Thanks for sharing.

  • 7777777phil 4 hours ago ago

    Very cool, thanks for sharing!!

  • doophus 8 hours ago ago

    Why are big chunks of Sam Francisco missing (eg around the bridge) missing from the example?

    • Sajarin 8 hours ago ago

      Those smooth chunks are all (mostly) public park land. Known as Presidio and part of the Golden Gate National Recreation Area.

    • originalankur 8 hours ago ago

      python create_map_poster.py -c "San Francisco" -C "USA" -t sunset -d 10000

      -d should be approx. 10k to 14k given the size of the city. You can give it a shot.

  • cinntaile 8 hours ago ago

    It says there are examples but I can't see them?

  • arnavpraneet 5 hours ago ago

    what are the blue dots? (not water bodies i think?)

    • thamer 3 hours ago ago

      Yes, the blue and orange dots are from the water and parks Nodes and Ways in the OSM data.

      It doesn't look like the orange and blue colors are part of the theme definitions, so the rendering library may be using some default values. This is why they are rendered in the same color on images using different theme files.

  • giuliomagnifico 9 hours ago ago

    Nice! Thanks