Lat lon to UTM converter
Latitude 40.7128 and longitude -74.006, in New York, become zone 18N with easting 583959.372 m and northing 4507350.998 m, EPSG 32618. Enter decimal degrees between 80° south and 84° north and get the metres your map tools expect. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Latitude
- 40.7128
- Longitude
- -74.006
- Zone
- 18 m
- Hemisphere
- N
- Easting
- 583,959.372
- Northing
- 4,507,350.998
A lat-lon to UTM converter turns a WGS84 geographic coordinate into the projected metres map makers and survey tools expect. Enter latitude and longitude in decimal degrees; the tool returns the UTM zone number, northern or southern hemisphere, easting, northing, EPSG code, central meridian, and a compact UTM string you can paste into GIS software. Field crews, pipeline validators, and coding exercises all need the same deterministic zone and metre pair without spinning up a desktop GIS.
What UTM means for a lat/lon pair
Universal Transverse Mercator divides the Earth into sixty longitude zones, each six degrees wide, and applies a transverse Mercator projection on the WGS84 ellipsoid with scale factor zero point nine nine nine six on the central meridian. Zone one starts at one hundred eighty degrees west and zones increase eastward so that, for example, much of New York City falls in zone eighteen north while Madrid sits in zone thirty north.
Easting is measured in metres from a false origin five hundred thousand metres west of the zone central meridian, which keeps easting positive across the full six-degree strip. Northing is metres from the equator in the northern hemisphere, or metres from a false origin ten million metres south of the equator in the southern hemisphere so southern values stay positive.
Latitude must stay inside the published coverage band from minus eighty to plus eighty-four degrees; polar latitudes use UPS instead of UTM and this capability rejects them rather than silently switching systems. Longitude must stay between minus one hundred eighty and one hundred eighty inclusive. The converter does not apply the special Norway or Svalbard zone exceptions used by some military grids—it uses the regular six-degree zone formula so results stay simple, documented, and easy to assert in automated tests.
Practical tips, limits, and related searches
Keep coordinates in decimal degrees on the WGS84 datum; do not send degrees-minutes-seconds strings or projected metres as if they were geographic angles. Southern-hemisphere northings include the ten-million-metre false offset; do not subtract it unless your downstream format explicitly wants equator-relative signed northing. This landing targets people searching for lat lon to UTM, latitude longitude to easting northing, or a free UTM zone converter online; it is not a reverse UTM-to-latlon decoder, not a MGRS grid tool, and not a full PROJ pipeline with custom datums.
Prefer this capability when you already have WGS84 degrees and only need zone plus metres; if your source is a different ellipsoid or a local grid, transform to WGS84 first. Round-trip checks are easy: convert a well-known city coordinate, confirm zone and approximate easting against a trusted GIS, then assert that latitude eighty-five always fails with the documented coverage-band message.
What you can do with it
Stamp GPS tracks with UTM metres
Field apps convert phone lat/lon samples to zone, easting, and northing so survey logs and CAD exports share one projected frame per work site.
Pre-flight before map overlays
Pipelines project points to UTM first, then join against metre-based layers only when zone and hemisphere match the target grid.
FAQ
What is the UTM coverage latitude range?
Standard UTM is defined from 80°S to 84°N.
Which datum does this converter use?
WGS84 only. Easting and northing are metres on the WGS84 ellipsoid with UTM scale factor 0.9996 and the usual false easting of 500000 m.
How is the UTM zone calculated?
zone = floor((lon + 180) / 6) + 1 for lon in [-180, 180), with lon ±180 mapped to zone 60. Special Norway/Svalbard exceptions are not applied.
Does this convert UTM back to lat/lon?
No. This capability only projects geographic degrees to UTM. Use a dedicated inverse converter if you start from zone, easting, and northing.
Is the lat lon to UTM converter free?
The browser tool is free and runs locally.
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/utm-from-latlon \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":40.7128,"lon":-74.006}'const res = await fetch("https://api.kit.forhosting.com/geo/utm-from-latlon", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat": 40.7128,
"lon": -74.006
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/utm-from-latlon",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat": 40.7128,
"lon": -74.006
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/utm-from-latlon", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat":40.7128,"lon":-74.006}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat":40.7128,"lon":-74.006}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/utm-from-latlon", 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": 40.7128,
"lon": -74.006
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.utm_from_latlon",
"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.
Limits
lat_min | -80 |
lat_max | 84 |
lon_min | -180 |
lon_max | 180 |
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
Standard UTM coverage runs from eighty degrees south to eighty-four degrees north—outside that band the API returns a clear invalid_input error instead of inventing polar-zone numbers.
How to call the API and what comes back
Latitude must be between minus ninety and ninety for basic range checks, but successful conversion further requires the UTM band from minus eighty through eighty-four inclusive. Longitude must lie between minus one hundred eighty and one hundred eighty. Send a JSON body with two required finite numbers: lat (aliases latitude and y) and lon (aliases longitude, lng, long, and x). On success the response echoes rounded lat and lon, sets zone to the integer one through sixty, hemisphere to N or S, easting and northing to metres rounded to three decimal places, epsg to the matching WGS eighty-four UTM code (thirty-two thousand six hundred plus zone in the north, thirty-two thousand seven hundred plus zone in the south), datum to WGS84, unit to m, central_meridian to the zone mid-longitude in degrees, utm to a compact human-readable string, message to a short English summary, and steps to an ordered array of derivation lines. Failed validation—missing fields, non-finite numbers, longitude out of range, or latitude outside the UTM coverage band—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price.
Practical tips, limits, and related searches
Prefer numeric JSON fields when you control the client; string numbers are accepted only when they match a strict finite numeric pattern. Near zone boundaries, a point just east or west of a multiple of six degrees changes zone as expected—assert zone and central_meridian together if your pipeline is sensitive to edge jumps. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when you deliberately probe polar latitudes.
Integration use cases
Unit tests for coordinate libraries
Generate deterministic expected zone and metre pairs for northern and southern samples, plus polar-latitude rejections, for coding kata golden files.