Gall–Peters projection calculator
On the Gall–Peters map with a radius of 1, the point at 0° latitude and 0° longitude sits at x 0 and y 0, the centre of the map. Convert coordinates to x and y or back to latitude and longitude, with areas kept true. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Latitude φ degrees
- 0
- Longitude λ degrees
- 0
- Sphere radius
- 1
- Decimal places
- 6
- Calculation mode
- Forward
- X
- 0
- Y
- 0
Search intent: gall peters projection calculator. No network calls or random seeds are required. Failed jobs are not billed.
How the Gall–Peters map is built
Gall–Peters is a cylindrical equal-area projection: the globe is unrolled onto a cylinder in a way that keeps every region's area in true proportion. Its standard parallel is 45°, and that number appears in both formulas. The horizontal coordinate x is the radius times the longitude times the cosine of 45°. The vertical coordinate y is the radius times the sine of the latitude divided by the cosine of 45°. Because y follows the sine of the latitude, the parallels crowd closer together toward the poles. In the example, a latitude and longitude of 0° with a radius of 1 give x 0 and y 0, the centre of the map.
Forward, inverse and the usual mistakes
The forward mode turns latitude and longitude, entered in degrees, into x and y; the inverse mode turns x and y back into latitude and longitude. Use the same radius in both directions, otherwise the round trip will not return the point you started with. Another common slip is expecting true shapes or distances: an equal-area map keeps sizes comparable, not shapes. Finally, choose how many decimals you want to see. The rounding is applied only once, at the end, to the unrounded result.
What you can do with it
Teaching
Pinned goldens.
FAQ
What is the Gall–Peters projection?
It is a cylindrical equal-area map projection with its standard parallel at 45°. Every region keeps its true area in proportion to the others, so the sizes of regions can be compared fairly.
Which formulas does the calculator use?
x is the radius times the longitude times the cosine of 45°, and y is the radius times the sine of the latitude divided by the cosine of 45°. The inverse mode runs the same formulas backwards.
Can I turn x and y back into latitude and longitude?
Yes. Switch to the inverse mode, enter x and y and use the same radius as for the forward conversion, and you get the latitude and longitude of that map point.
Which radius should I enter?
Any sphere radius: x and y come out in the same unit. A radius of 1 gives unit-sphere coordinates for teaching and checking, while a radius in metres gives map coordinates in metres.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/geo/gall-peters \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat_deg":45,"lon_deg":0}'const res = await fetch("https://api.kit.forhosting.com/geo/gall-peters", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat_deg": 45,
"lon_deg": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/gall-peters",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat_deg": 45,
"lon_deg": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/gall-peters", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat_deg":45,"lon_deg":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat_deg":45,"lon_deg":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/gall-peters", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"lat_deg": 45,
"lon_deg": 0
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.gall_peters",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Cylindrical equal-area Gall–Peters (φs=45°) forward/inverse. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS, automation, or teaching demos.
How it works
No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required. Failed jobs are not billed. Cylindrical equal-area Gall–Peters (φs=45°) forward/inverse. x=Rλ cos45; y=R sinφ / cos45. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS, automation, or teaching demos.
Inputs, limits and rounding
Optional decimals use half-up once. Outputs echo inputs. No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required. Failed jobs are not billed. Provide required JSON fields. Invalid types raise invalid_input. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS, automation, or teaching demos.
When to use it
Use when search intent matches. No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required. Failed jobs are not billed. Cylindrical equal-area Gall–Peters (φs=45°) forward/inverse. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS, automation, or teaching demos.
Integration use cases
Quick check
Free widget.
Automation
Same JSON via API.
Technical questions
Free?
Yes tier A.
Network?
No.
Bad input?
invalid_input.
API?
Yes.
Locales?
EN-only; Nitro hydrates.