Dev tools

Coordinate format convert (DD/DMS/UTM)

Convert between decimal degrees, degrees-minutes-seconds, and UTM. WGS84, standard 6° zones, non-polar only. MGRS grid-square lettering is not implemented (its edge cases are a separate, riskier piece of work). Runs on your device.

Runs on your device. The file is never uploaded.

Coordinate format convert (DD/DMS/UTM) reads one coordinate from the input box and prints it as DMS, DD or UTM. The to option picks which, starting on dms, and the input format is recognised from its shape. The box comes prefilled with 40.7128, -74.0060. Any latitude outside -80 to 84 is refused, even when you asked for DD.

Options

Questions

Which formats does it convert between?

Decimal degrees, degrees-minutes-seconds and UTM, in any direction. The input format is detected from its shape: a pattern like 18N 583960 4507523 is read as UTM, anything containing a degree sign is read as DMS, and everything else is read as a "lat, lon" decimal pair. The to option picks the output: dd, dms or utm.

What datum and zones does the UTM use?

WGS84, with standard 6 degree zones, the 0.9996 scale factor and the usual transverse Mercator series. The real-world zone-width exceptions around Norway and Svalbard are not applied, so a coordinate there gets its plain arithmetic zone. Output reads as zone and hemisphere then easting and northing in meters, for example 18N 583959.96 4507523.09.

Can it give me MGRS?

No. It stops at the UTM zone, hemisphere, easting and northing. MGRS adds 100 km grid-square lettering with genuine edge cases around Svalbard and the polar bands, and a hand-rolled version that got one of those wrong would produce a plausible but wrong reference, so it was left out rather than approximated.

Why was my polar coordinate refused?

Latitudes outside -80 to 84 are rejected, because the polar UPS zones are not implemented. The check runs before the output is built, so it applies even when you only asked for DMS or DD. Everywhere else on Earth sits inside that band, so in practice only Antarctic and far Arctic points hit it.

How should I type DMS input?

As two components separated by a space, latitude first, each carrying a degree sign, for example 40°42'46"N 74°0'22"W. Minutes, seconds and the hemisphere letter are all optional in the pattern. If the first component carries an E or W and no N or S, the two are swapped for you rather than being read in the wrong order.

What precision comes out?

DMS seconds are printed to two decimal places, and UTM easting and northing to two decimals of a meter. Decimal degrees are printed raw with no rounding, so a value that came in as UTM can carry a long tail. The DD and DMS conversions are exact arithmetic; only the UTM series is an approximation.

Related Dev tools

n→nJSON ↔ CBOREncode JSON to CBOR bytes (shown as hex) or decode CBOR bytes back to JSON. Covers uint/negint/text/array/map/float/bool/null; no byte strings, tags, or indefinite-length items.Runs on each file you dropn→nJSON ↔ MessagePackEncode JSON to MessagePack bytes (shown as hex) or decode MessagePack bytes back to JSON. Covers nil/bool/int/float64/str/array/map: no bin, ext, or timestamp extension types.Runs on each file you dropn→nJSON ↔ RisonConvert JSON to Rison (the compact URI-safe notation Kibana/Elasticsearch use for query params) and back. This tool's own encoder/decoder for the documented core grammar (no reference implementation in this codebase to check against). Exotic edge cases like embedded control characters or surrogate-pair characters are not guaranteed byte-identical to the reference grammar.Runs on each file you dropn→nPHP serialize / unserializeConvert JSON to PHP's serialize() format and back. Covers null/bool/int/float/string/array. PHP objects (O:) are not implemented since they need a class registry this tool doesn't have.Runs on each file you dropn→nPLIST viewerView an XML property list (.plist) as JSON. Binary plist (bplist00) is not supported. It needs a separate binary-format parser this tool does not implement.Runs on each file you dropn→nGeoJSON ↔ CSVConvert GeoJSON Point features to CSV rows and back. LineString/Polygon geometries export as a flattened coordinate list (one-way; CSV->GeoJSON always builds Points). CSV parsing is fully quote-aware (src/csv.ts), so a quoted field holding a comma or a newline no longer shifts the coordinate columns.Runs on each file you drop