Skip to main content
100%

Cox Projection

✓ Published0🌍 Public
PPhilippe Rivière
Last edited Aug 25, 2017
Created on May 28, 2017

This example demonstrates a conformal projection of the entire Earth onto an equilateral triangle, based on the Cox projection. The visualization uses a custom `coxRaw` projection with D3's `geoProjection` and `geoPath` to render world map data from a TopoJSON source onto a Canvas. The projection can be interactively rotated by dragging, with rotation handled via the `versor` library. The implementation relies on complex number calculations and the `geoInverseNewton` function to compute the inverse projection.

AI-generated description

Conformal projection of the Sphere within an equilateral triangle.

Original research by Philippe Rivière for d3-geo-projection, issue #118.

Read a write-up at visionscarto.net.

(See also the North polar aspect.)

Reference papers:

  • J. F. Cox, Représentation de la surface entière de la terre dans un triangle équilatéral. Bulletin de la Classe des Sciences, Académie Royale de Belgique, 5, 21: 66-71. Bruxelles, 1935.

  • J. Magis, Calcul du canevas de la représentation conforme de la sphère entière dans un triangle équilatéral. Bulletin Geodésique, 247-256. Paris, 1938.

  • L.P. Lee, Conformal Projections Based On Dixon Elliptic Functions, Cartographica: The International Journal for Geographic Information and Geovisualization > Vol. 13, # 1, June 1976.

  • M. Douglas McIlroy, Wallpaper maps, 2011.


<!-- signature --> [<img src="https://avatars1.githubusercontent.com/u/7001?s=20" />](https://github.com/Fil/) <em>Questions and comments welcome on [gitter.im/d3](https://gitter.im/d3/d3), [twitter](https://twitter.com/@recifs) or [slack](https://d3js.slack.com).</em> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-58621-8', 'auto'); ga('send', 'pageview'); </script>
mit Licensed

Similar vizzes