getEastingNorthing method
Returns the easting and northing of a given letter pair reference For example, a letter pair reference of TG 51409 13177 will return an easting of 651409 and a northing of 313177
Implementation
dynamic getEastingNorthing(String gridRef) {
var letE = gridRef.toUpperCase().codeUnitAt(0) - 'A'.codeUnitAt(0);
var letN = gridRef.toUpperCase().codeUnitAt(1) - 'A'.codeUnitAt(0);
if (letE > 7)
letE--;
if (letN > 7)
letN--;
var e = ((letE+3)%5)*5 + (letN%5);
var n = (19-(letE/5).floor()*5) - (letN/5).floor();
gridRef = gridRef.substring(2).replaceAll(' ', '');
String eastingString = "$e${gridRef.substring(0, gridRef.length~/2)}";
String northingString = "$n${gridRef.substring(gridRef.length~/2)}";
switch (gridRef.length) {
case 6: eastingString += '00'; northingString += '00'; break;
case 8: eastingString += '0'; northingString += '0'; break;
}
return [int.parse(eastingString), int.parse(northingString)];
}