Please enable JavaScript to view this site.
bg

Benny Chin 陳威全

a Geographer, Cartographer, & GIScientist

The Morphing Map Project

Benny on 2024-01-30

Introduction

This website aims to use the SVG morphing function to show how the map is projected from the earth, and the distortion of maps with various projection approaches.

The projections were setup with different crs (coordinate reference system) in proj4 string format. The crs were obtained from the proj.org website. The data, including the world map shapefile and the grids, is obtained from Natural Earth Data website.

Some data manipulation/cleaning is done, including to add equal spacing point at 90S (Antartica) so that it acts more naturally when doing projection, and do some cutting at the opposite point/line of the referencing point/line to avoid strange situation when projecting.

As of now (2024/01/25), the webpages listed below are for the global projections.

The link: The Morphing Map Project

Some background

The thought to build a webpage of the morphing projection sparkled when I saw how people use SVG morphing to show the changing of the Batman logo. Map projections are similar with and different from each other in some ways. So, it would be interesting to see how they change from one to another, just like the Batman logo.

Therefore, I started the Vmapper project and have done creating the SVG for maps from the shapefile, using GeoPandas in Python. It was based on Python 2.xx back then, about 7-8 years ago (based on Github commit history). Then, it seems to be a long way to do and some JS tool to be used to achieve the objective. And I have some other stuff to busy on, so it stopped at that point. Until last week when I was preparing for a cartography course, this a-decade-old idea pop-up again in my mind, so I decided to see if I can finish it quickly. This took longer than I expected. I was planning to finish it in 2-3 days but it took me about 1 week now. I am quite satisfy with the current form. I may want to add more local projection example later when I have time.