Lambert azimuthal equal-area projection calculator
Project a latitude and longitude onto a Lambert azimuthal equal-area map centered where you choose, in metres east and north: the center itself, such as 45° N, 100° W, always lands at 0 and 0. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Latitude
- 45
- Longitude
- -100
- Center latitude
- 45
- Center longitude
- -100
- X m
- 0
- Y m
- 0
- Radius m
- 6,371,008.8
The Lambert azimuthal equal-area projection turns one latitude and longitude into planar X and Y coordinates while preserving area on a sphere. You choose the latitude and longitude at the center of the map, and the calculator returns metre offsets from that origin using a configurable sphere radius. This makes it useful for regional thematic maps, distance-from-center displays, polar views, and reproducible geospatial data pipelines. The calculation is deterministic, runs without a projection service, and clearly rejects the one point that cannot be represented: the exact antipode of the selected center.
Choose the point, projection center, and sphere radius
All four angles use decimal degrees. Latitudes must remain between minus ninety and ninety, while longitudes must remain between minus one hundred eighty and one hundred eighty. The center is an essential part of the coordinate system: changing it changes both output axes even when the projected location stays fixed.
A location equal to the center always produces zero metres east and zero metres north. Supply another positive radius when your workflow assumes a particular spherical body or established map specification. This implementation is spherical, not ellipsoidal, so do not insert an ellipsoid semi-major axis and expect full ellipsoidal LAEA behavior.
Understand the equal-area forward projection
The engine converts each angle to radians, measures the longitude difference from the selected central meridian, and computes the spherical Lambert azimuthal scale factor. That factor depends on the angular relationship between the point and the center. The projection preserves areas relative to the chosen sphere, which is why it is widely used for choropleth maps, density surfaces, continental summaries, and polar coverage where comparing region sizes matters.
Equal area does not mean that every other property is preserved. Shapes and distances become increasingly distorted away from the center, and bearings are dependable from the center rather than between arbitrary projected points. The exact antipode of the center makes the scale denominator zero: every direction on the plane would compete to represent that single opposite point.
The capability detects this singular case and reports an error instead of emitting infinity or a misleading huge number. Near-antipodal results can be very large and sensitive, so choose a center near the region you actually intend to display.
Use the output safely in maps and data pipelines
Positive X generally points east from the central meridian and positive Y points toward the map's local north. The coordinates are offsets in metres on this particular projected plane; they are not automatically compatible with a layer produced by another center, radius, datum, or ellipsoidal Lambert implementation. Store the center and radius with projected values so a later process can reproduce the same system.
No network lookup, datum grid, random value, or current time participates in the result. For official surveying or interchange with a named EPSG projected CRS, use a projection library configured to that full CRS definition; this focused calculator is intended for explicit spherical LAEA calculations about a user-selected center.
What you can do with it
Build an equal-area regional map
Project locations around a regional center before drawing thematic symbols, density grids, or area-based comparisons on one consistent spherical plane.
Create a polar visualization
Place the center at a pole to generate stable planar coordinates for Arctic or Antarctic coverage, research stations, and observation footprints.
FAQ
What does Lambert azimuthal equal-area preserve?
It preserves area on the selected sphere. It does not preserve all distances, shapes, or directions, especially far from the center.
Which Earth radius is used by default?
The default is 6371008.8 metres, the IUGG mean Earth radius. You can provide another positive spherical radius.
Is this an ellipsoidal EPSG transformation?
No. It is the explicit spherical Lambert azimuthal equal-area formula about your chosen center, not an ellipsoidal datum transformation.
Why is the point opposite the center rejected?
At the exact antipode of the center the calculation would divide by zero, because every direction on the plane would compete to represent that one point. The tool reports an error instead of a huge, misleading number; near that point results are already very large and sensitive.
Can I combine coordinates made with different centers?
No. The metre values are only valid for the center and radius used to compute them, so a layer made with another center will not line up. Store the center and the radius with the coordinates so you can reproduce them.
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/lambert-azimuthal \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"latitude":40,"longitude":-75,"center_latitude":45,"center_longitude":-100}'const res = await fetch("https://api.kit.forhosting.com/geo/lambert-azimuthal", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"latitude": 40,
"longitude": -75,
"center_latitude": 45,
"center_longitude": -100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/lambert-azimuthal",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"latitude": 40,
"longitude": -75,
"center_latitude": 45,
"center_longitude": -100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/lambert-azimuthal", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"latitude":40,"longitude":-75,"center_latitude":45,"center_longitude":-100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"latitude":40,"longitude":-75,"center_latitude":45,"center_longitude":-100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/lambert-azimuthal", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"latitude": 40,
"longitude": -75,
"center_latitude": 45,
"center_longitude": -100
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.lambert_azimuthal",
"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
Choose the point, projection center, and sphere radius
Provide latitude and longitude for the location that you want to project, followed by center_latitude and center_longitude for the origin of the Lambert azimuthal map. The optional radius_m field controls the scale of the plane and defaults to 6371008.8 metres, the IUGG mean Earth radius. Numeric strings are accepted when they convert to finite values, but missing fields, infinite values, out-of-range angles, and nonpositive radii return invalid_input rather than an ambiguous coordinate.
Understand the equal-area forward projection
It is then applied to the eastward and northward components to produce x_m and y_m.
Use the output safely in maps and data pipelines
A successful response returns x_m and y_m rounded to six decimal places, along with the original geographic coordinate, the chosen center, the radius used, and a method identifier.
Integration use cases
Test a geospatial pipeline
Produce deterministic reference coordinates for fixtures, teaching examples, and validation of a spherical Lambert azimuthal implementation.
Technical questions
What units are the output coordinates in?
The x_m and y_m outputs are metres when radius_m is supplied in metres, as required by this capability.
Why does an antipodal point fail?
The point exactly opposite the center is a singularity of the projection: its planar direction is undefined, so the request returns invalid_input.