The biggest problem with converting from UTM to MGRS is computing the ZDL. As an aid to testing the following table gives the WGS84 boundary points for all ZDL's in the northern hemisphere.
The area specified by each MGRS Grid Zone Designation is bounded to the east and west by the 6° Zone boundaries and to the north and south by ZDL boundaries, the latter being latitude multiples of 8° (except for Zone X which is bounded above by 84°). The following table includes:
| Center of ZDL Boundary | Edge of ZDL Boundary | Differences | |||||
|---|---|---|---|---|---|---|---|
| Western | Eastern | Northing | |||||
| Lat | E0 | N0 | E1 | E2 | N1=N2 | E0-E1=E2-E0 | N1-N0=N2-N0 |
| 0 | 500000.000 | 0.000 | 166021.443 | 833978.557 | 0.000 | 333978.557 | 0.000 |
| 4 | 500000.000 | 442127.390 | 166831.065 | 833168.935 | 442736.253 | 333168.935 | 608.862 |
| 8 | 500000.000 | 884297.851 | 169256.158 | 830743.842 | 885503.759 | 330743.842 | 1205.908 |
| 12 | 500000.000 | 1326553.636 | 173285.409 | 826714.591 | 1328333.183 | 326714.591 | 1779.548 |
| 16 | 500000.000 | 1768935.376 | 178900.003 | 821099.997 | 1771254.018 | 321099.997 | 2318.642 |
| 20 | 500000.000 | 2211481.308 | 186073.680 | 813926.320 | 2214294.026 | 313926.320 | 2812.719 |
| 24 | 500000.000 | 2654226.538 | 194772.811 | 805227.189 | 2657478.709 | 305227.189 | 3252.171 |
| 28 | 500000.000 | 3097202.371 | 204956.511 | 795043.489 | 3100830.818 | 295043.489 | 3628.447 |
| 32 | 500000.000 | 3540435.693 | 216576.773 | 783423.227 | 3544369.910 | 283423.227 | 3934.216 |
| 36 | 500000.000 | 3983948.453 | 229578.630 | 770421.370 | 3988111.962 | 270421.370 | 4163.509 |
| 40 | 500000.000 | 4427757.219 | 243900.352 | 756099.648 | 4432069.057 | 256099.648 | 4311.838 |
| 44 | 500000.000 | 4871872.841 | 259473.679 | 740526.321 | 4876249.127 | 240526.321 | 4376.286 |
| 48 | 500000.000 | 5316300.224 | 276224.085 | 723775.915 | 5320655.789 | 223775.915 | 4355.565 |
| 52 | 500000.000 | 5761038.213 | 294071.081 | 705928.919 | 5765288.255 | 205928.919 | 4250.042 |
| 56 | 500000.000 | 6206079.587 | 312928.561 | 687071.439 | 6210141.327 | 187071.439 | 4061.740 |
| 60 | 500000.000 | 6651411.190 | 332705.179 | 667294.821 | 6655205.484 | 167294.821 | 3794.293 |
| 64 | 500000.000 | 7097014.163 | 353304.773 | 646695.227 | 7100467.049 | 146695.227 | 3452.887 |
| 68 | 500000.000 | 7542864.297 | 374626.822 | 625373.178 | 7545908.449 | 125373.178 | 3044.152 |
| 72 | 500000.000 | 7988932.503 | 396566.946 | 603433.054 | 7991508.543 | 103433.054 | 2576.040 |
| 76 | 500000.000 | 8435185.369 | 419017.428 | 580982.572 | 8437243.036 | 80982.572 | 2057.667 |
| 80 | 500000.000 | 8881585.816 | 441867.785 | 558132.215 | 8883084.956 | 58132.215 | 1499.140 |
| 84 | 500000.000 | 9328093.831 | 465005.345 | 534994.655 | 9329005.182 | 34994.655 | 911.352 |
| 88 | 500000.000 | 9774667.256 | 488315.862 | 511684.138 | 9774973.029 | 11684.138 | 305.774 |
The approximate Northing of a ZDL boundary is most easily calculated by fitting a quadratic through the UTM boundary points given above. If E is the Easting of an arbitrary point on the boundary and N is its Northing we have:
N=N0+(E-E0)*(E-E0)/((E1-E0)*(E1-E0))
However, we can get a significantly better value by fitting a circle through the same points.
This trick is used by the function ZoneLatToN(d,E) in my
UTM to MGRS convertor.
Interested readers will find more information in the
UTM to MGRS convertor documentation.
Uprated to xhtml 2005-08-16