# Get "approximate" lat/long coordinate for UTM grid zone

I have data assigned with a UTM grid zone designators, such as `10S` for example. Now I need an approximate latitude/longitude pair, preferably the center point of the given grid zone. Can you give me some advice, on how to map those values?

• What GIS software are you using? Jan 25, 2014 at 17:32
• No dedicated GIS software, I'm working on a custom Java program, where I need this functionality. Jan 25, 2014 at 17:47

there are 60 UTM zones starting at -180 of longitude (in other words, one zone is 6 degree wide). Based on this information, you can find the longitude quite easily : (Zone number-1) * 6 - 180 + 3( I've added +3 the center of the zone)

For the latitude, it is less obvious because it is very large. I would take the middle (45 for North and -45 for South). Or you have a letter : in this case, there are 20 latitudinal zones spanning the latitudes 80°S to 84°N and denoted by the letters C to X, ommitting the letter O. You can apply the same type of rule than for the longitude, but be careful for the letter O. The latitude band are of 8 degree, except the X band (12°).

note that you can dowload the grid here

The first digits are the zone number and give you the longitude range. The letter is the latitude band. A good starting point on understanding this is Wikipedia.

Maybe it might be helpful to others; here's what I came up with based on the responses here and some additional research (Java code, validation etc. omitted for brevity):

``````static final String UTM_BAND_CHARS = "CDEFGHJKLMNPQRSTUVWXX";

public static double[] toLatLng(char band, int zone) {
int bandIdx = UTM_BAND_CHARS.indexOf(band);
double lat = bandIdx * 8 - 76;
double lng = ((zone - 1) * 6) - 177;

// special case for Norway
if (band == 'V') {
if (zone == 31) {
lng = 1.5;
} else if (zone == 32) {
lng = 7.5;
}
}
return new double[] {lat, lng};
}
``````