public static string OldMapnumberFromLongitudeLatitude(decimal longitude, decimal latitude, int scaleDenominator) { string n100W = NewMapnumber100WFromLongitudeLatitude(longitude, latitude); if (string.IsNullOrEmpty(n100W)) { return(null); } LongitudeLatitudeDifferent.LongitudeLatitudeDifferenceByScaleDenominator(scaleDenominator, out bool success, out decimal JC, out decimal WC); NewMapnumberRowColumnNumIn100WFromLongitudeLatitude(longitude, latitude, JC, WC, out int row, out int column); string scaleStr = NewMapnumber.ScaleString(scaleDenominator); if (scaleDenominator == 200000) { return(OldMapnumber20WFromLongitudeLatitude(longitude, latitude)); } else { string r = ""; string c = ""; if (scaleStr == "J" || scaleStr == "K") { r = row.ToString("0000"); c = column.ToString("0000"); } else { r = row.ToString("000"); c = column.ToString("000"); } if (string.IsNullOrEmpty(scaleStr)) { scaleStr = ""; r = ""; c = ""; } string newMapnumber = n100W + scaleStr + r + c; if (NewMapnumberCheck.Check(newMapnumber)) { string oldMapnumber = NewMapnumberToMapnumber.ToOldMapnumber(newMapnumber); if (OldMapnumberCheck.Check(oldMapnumber)) { return(oldMapnumber); } } return(null); } }
public static string NewMapnumberFromLongitudeLatitude(decimal longitude, decimal latitude, int scaleDenominator) { var newMapnumber_100W = NewMapnumber100WFromLongitudeLatitude(longitude, latitude); if (string.IsNullOrEmpty(newMapnumber_100W)) { return(null); } LongitudeLatitudeDifferent.LongitudeLatitudeDifferenceByScaleDenominator(scaleDenominator, out bool success, out decimal longitudeDifference, out decimal latitudeDifference); if (!success) { throw new Exception(); } NewMapnumberRowColumnNumIn100WFromLongitudeLatitude(longitude, latitude, longitudeDifference, latitudeDifference, out int row, out int column); string scaleStr = NewMapnumber.ScaleString(scaleDenominator); string r = ""; string c = ""; if (scaleStr == "J" || scaleStr == "K") { r = row.ToString("0000"); c = column.ToString("0000"); } else { r = row.ToString("000"); c = column.ToString("000"); } if (string.IsNullOrEmpty(scaleStr)) { scaleStr = ""; r = ""; c = ""; } string newMapnumber = newMapnumber_100W + scaleStr + r + c; if (!NewMapnumberCheck.Check(newMapnumber)) { return(null); } return(newMapnumber); }