Dev.to WebDev ๐Ÿ›  Dev ๐Ÿ‘ 0 ๐Ÿ“– 1 min read

I built a globe where every country is a separate piece you can pull out ๐ŸŒ

Hey everyone ๐Ÿ‘‹ Most web globes are a texture wrapped around a sphere. You can spin them, and that's about it. I wanted one where every country is a real object: its own plate, set into the ocean ball like a puzzle piec

I built a globe where every country is a separate piece you can pull out ๐ŸŒ

Hey everyone ๐Ÿ‘‹

Most web globes are a texture wrapped around a sphere. You can spin them, and that's about it.

I wanted one where every country is a real object: its own plate, set into the ocean ball like a puzzle piece. So I built it.

It's all SVG and a bit of math, with no WebGL and no canvas.

What you can do ๐ŸŽฎ

  • Drag to turn the globe any way
  • Click a country to pull it out of its socket
  • Break the whole map apart with one button, then let it settle back

All the countries pulled out of the globe

Pull out a big country like Canada, the US or Pakistan and it splits into its states or provinces, each one a plate with its name on it.

One country split into its provinces

How it works ๐Ÿ› ๏ธ

  1. The ball is a projection. Natural Earth's outlines go through a d3-geo orthographic projection. When you drag, nothing moves: the globe rotates and every country is projected again.
  2. Each country is its own plate. It has a top, walls, a socket it leaves behind and a shadow, so it can lift out on its own spring while the others stay put.
  3. SVG has no depth buffer. So every frame the plates are sorted by how much they face you, and drawn back to front.
  4. Provinces load on demand. The split data is one small file per country, fetched only the first time you pull that country out.

Try it ๐ŸŒ

๐Ÿ‘‰ mahmad.me/blocks/interactive/world-globe

Break the map apart, then try to put it back together by hand

Country outlines and borders are from Natural Earth, which is public domain.

๐Ÿ“ฐ Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes โ€” full credit and traffic to the original publisher.