Dymaxion Map

I’ve been thinking a while about creating a nice SVG map in the Dymaxion projection to hang on my wall – being a GIS expert I need to have a map on my wall ;) However Dymaxion is not like most projections and standard GIS software doesn’t support it. Luckily there are some tools available, most important the Perl module Geo::Dymaxion, written by Schuyler Erle. This module transforms lat/long coordinates to dymaxion coordinates relative to an image size. This means it is easy, given an existing dymaxion map to plot point s on top of them, as shown in his book mapping hacks, code here.

However a map consists of more than points. So I wrote a simple Perl script to transform the coordinates of a GeoJSON into Dymaxion. It should find any coordinate pairs in Point, LineString, Polygon, MultiPoint, MultiLineString and MultiPolygon features and replace the pairs with dymaxion ones. These new pairs do not make a lot of sense in normal GIS software, but exporting them to SVG will give you a nice Dymaxion map. GeoJSON is not a common format (yet!?) but it is easy to create form a shapefile using ogr2ogr.

So the steps to follow are:
1 convert your input shapefile to json:
ogr2ogr -f GeoJSON processed.json input.shp

2 dymaxionify your json:

./dymyx.pl

3 load the json in qgis

qgis output.json

4 export the map as SVG

unfortunately I don’t know a comandline for that, but if you use the print composer tool, and compose a map you can save that as SVG. There might be easier ways, but haven’t found them yet.

For example I ran the 50m-coastlines and created a new dymaxion coastline SVG as seen here

Note: it doesn’t handle encoded characters as it should aka a bug


GIS, design