One Earth, two views: map and globe in JSXGraph

We are mathematicians, not geographers. JSXGraph was developed for interactive geometry, plotting functions, and drag-and-drop visualizations, not for coastlines or rotating globes. But at heart, a map projection is just a way of mapping the surface of a sphere onto a plane, and a globe is a sphere viewed through a camera lens. That's right up our alley. So we ventured into cartography.

We came back with two new elements. geomap spreads the world out on a flat sheet; globe3d keeps it on the sphere. They are different classes, but they answer the same questions, so the same layers and drawable elements work on both. And everything you know from JSXGraph still applies: points, dragging, events, boards. For us, the Earth is simply one more thing to construct.

If you know your way around maps and spot something we got wrong, we would love to hear from you.

Example Map

Every map lies. Choose how.

Every flat map of a round planet gets something wrong. The only choice is what: Mercator keeps the angles right and blows Greenland up to the size of Africa, which is fourteen times larger. Equal Earth keeps the sizes honest and pays for it in the shapes. Click through them and watch each one give something up.

On 4 September 2026 the UN General Assembly took a side: resolution A/RES/80/307 encourages Equal Earth and its relatives wherever relative size matters. It bans nothing and it settles nothing — and it asks for the harder half too, that people be shown why no flat sheet can keep everything at once. That is what this board is for.

Example Globe

Or keep it round.

No map projection, no compromise — on a globe everything keeps its true relative size. Two points, and two ways between them: the solid line is the shortest one there is, the dashed one holds a single true bearing — the same angle to every meridian — from start to finish.

And the globe itself is not a picture. It is a JSXGraph construction like any other: turn it with the pointer, drag what sits on it, read values off it. The far side stays faintly visible.

API documentation (beta)

Rudimentary: every public function with its parameters and return value, generated from the source. Have a look.