https://blog.pepf.nl/posts/2013-shapejs/