Globe and map projections compared with one dataset
A projection changes the geographic argument a visualization makes. To make those differences visible, the lab below renders the same routes and cities four times. Only the projection changes.
Use the focus buttons to move all four views to the same longitude, latitude, and zoom request. The Pacific seam view is especially useful: the orthographic globe rotates naturally, while each flat map must decide where and how to split the world.
What changes in the same frame
| View | What it preserves well | What becomes misleading | Good fit |
|---|---|---|---|
| Orthographic globe | The visual shape of one hemisphere and an intuitive sense of depth | Half the world is hidden, and distances near the edge are compressed | Product visuals, global networks, routes, and spatial storytelling |
| Equirectangular | Longitude and latitude map directly to horizontal and vertical position | High latitudes stretch horizontally, and area is not preserved | Simple data grids, texture authoring, and direct coordinate inspection |
| Mercator | Local angles and familiar navigation shapes | Polar regions become dramatically oversized, and the poles cannot be shown | Familiar web-map interaction and direction-focused views |
| Natural Earth | A balanced whole-world silhouette with moderate distortion | It preserves neither exact area nor exact local angles | Reports, dashboards, and editorial world maps |
The moving route is the same great-circle path in every panel. On the globe it rises over the sphere. On the flat maps it curves because the spherical path is being projected onto a plane. A straight line on a flat map would be a different geographic claim.
Reproduce the comparison
const shared = {
markers,
arcs,
preset: "blueprint",
autoRotate: false,
graticule: true,
center: { lon: 12, lat: 18 },
zoom: 1,
};
const views = [
createGlobe(globeCanvas, { ...shared, mode: "globe" }),
createGlobe(equirectangularCanvas, {
...shared,
mode: "map",
projection: "equirectangular",
}),
createGlobe(mercatorCanvas, {
...shared,
mode: "map",
projection: "mercator",
}),
createGlobe(naturalEarthCanvas, {
...shared,
mode: "map",
projection: "naturalEarth",
}),
];
function focusAll(lon, lat, zoom) {
for (const view of views) {
view.setZoom(zoom).flyTo(lon, lat, { instant: true });
}
}
Keep the marker and arc object references shared if you are measuring performance. CanvasGlobe caches sampled great-circle points per arc object, so rebuilding identical route objects would add unrelated work to the comparison.
Reading the evidence honestly
This lab holds the canvas ratio constant at 2:1 to make the panels easy to compare. That is a controlled comparison, not the ideal presentation ratio for every projection. In a real interface:
- a globe is usually strongest in a square or near-square frame;
- an equirectangular world map naturally fits a 2:1 frame;
- Mercator needs a chosen latitude window because the poles approach infinity;
- Natural Earth uses a rounded world outline and benefits from some breathing room around the edges.
The bundled coastline uses simplified Natural Earth 1:110m geometry. It is suitable for global views, but it is not a cadastral or street-level boundary source. Projection mathematics can place a marker precisely even when a simplified shoreline makes that marker look slightly offshore.
Choosing quickly
- Choose the globe when depth, routes, and global presence are the story.
- Choose equirectangular when direct longitude and latitude alignment matters.
- Choose Mercator when the audience expects a familiar navigational map and polar area is not the message.
- Choose Natural Earth when the entire world must remain visible in a balanced editorial frame.
Continue with projections and zoom for panning, zoom anchoring, latitude windows, the antimeridian, and coordinate conversion. For performance measurements across different libraries, use the reproducible globe benchmark.
Before deploying CanvasGlobe in a public production project, purchase a license and add the provided license key.