#24563 closed defect (fixed)

Relay Search map has severe area distortions

Reported by: teor Owned by: metrics-team
Priority: Medium Milestone:
Component: Metrics/Relay Search Version:
Severity: Normal Keywords:
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description (last modified by teor)

I'm concerned that the Relay Search map represents countries and continents poorly.

It uses the d3.geo.mercator() projection, which is not recommended for comparison maps like ours:

The spherical Mercator projection...introduces severe area distortion at world scale and thus is not recommended for choropleths.

References:

One obvious issue is that India and the EU are about the same size, but the EU looks larger. Similarly, Greenland is smaller than India, but looks much larger. Here's a list of countries in order of area:
https://en.wikipedia.org/wiki/List_of_countries_by_area

I suggest we use an equal-area projection instead. It's much better suited to the kinds of comparisons that we're doing.

None of the built-in projections are rectangular equal-area:
https://github.com/d3/d3-geo#projections

Extra projections are available here:
https://github.com/d3/d3-geo-projection

This is the only rectangular equal-area projection without significant distortion:
https://en.wikipedia.org/wiki/Cylindrical_equal-area_projection
https://github.com/d3/d3-geo-projection#geoCylindricalEqualArea

Here's the line in js/views/aggregate/map.js we'll need to change, as well as adding the d3-geo-projection import:

var projection = d3.geo.mercator()

Child Tickets

Attachments (1)

0001-Changes-map-projection-to-Cylindrical-Equal-Area-fix.patch (153.3 KB) - added by cypherpunks 10 months ago.

Download all attachments as: .zip

Change History (4)

comment:1 Changed 10 months ago by teor

Description: modified (diff)

Tidy up the reference and the quote

comment:2 Changed 10 months ago by cypherpunks

Status: newneeds_review

comment:3 Changed 10 months ago by irl

Resolution: fixed
Status: needs_reviewclosed

Merged and deployed.

Note: See TracTickets for help on using tickets.