public static bool Validate(CoordinateUTM utm) { if (utm.Zone < 1 || utm.Zone > 60) { return(false); } return(true); }
public static bool TryParse(string input, out CoordinateUTM utm) { utm = new CoordinateUTM(); if (string.IsNullOrWhiteSpace(input)) { return(false); } input = input.Trim(); Regex regexUTM = new Regex(@"^\s*(?<zone>\d{1,2})(?<band>[A-HJ-NP-Z]?)[-,;:\sm]*(?<easting>\d{1,9})[-,;:\sm]*(?<northing>\d{1,9})[-,;:\sm]*"); var matchUTM = regexUTM.Match(input); if (matchUTM.Success && matchUTM.Length == input.Length) { if (ValidateNumericCoordinateMatch(matchUTM, new string[] { "zone", "easting", "northing" })) { // need to validate the gzd and gs try { utm.Zone = Int32.Parse(matchUTM.Groups["zone"].Value); utm.Easting = Int32.Parse(matchUTM.Groups["easting"].Value); utm.Northing = Int32.Parse(matchUTM.Groups["northing"].Value); utm.Band = matchUTM.Groups["band"].Value; } catch { /* Conversion Failed */ return(false); } return(Validate(utm)); } } return(false); }
public static bool TryParse(string input, out CoordinateUTM utm) { utm = new CoordinateUTM(); if (string.IsNullOrWhiteSpace(input)) return false; input = input.Trim(); Regex regexUTM = new Regex(@"^\s*(?<zone>\d{1,2})(?<hemi>[NS]?)[-,;:\sm]*(?<easting>\d{1,9})[-,;:\sm]*(?<northing>\d{1,9})[-,;:\sm]*"); var matchUTM = regexUTM.Match(input); if (matchUTM.Success && matchUTM.Length == input.Length) { if (ValidateNumericCoordinateMatch(matchUTM, new string[] { "zone","easting","northing" })) { // need to validate the gzd and gs try { utm.Zone = Int32.Parse(matchUTM.Groups["zone"].Value); utm.Easting = Int32.Parse(matchUTM.Groups["easting"].Value); utm.Northing = Int32.Parse(matchUTM.Groups["northing"].Value); utm.Hemi = matchUTM.Groups["hemi"].Value; } catch { return false; } return Validate(utm); } } return false; }
public static bool Validate(CoordinateUTM utm) { if (utm.Zone < 1 || utm.Zone > 60) return false; return true; }
public static string GetFormattedCoord(CoordinateType cType, string coord, string format) { if (cType == CoordinateType.DD) { CoordinateDD dd; if (CoordinateDD.TryParse(coord, out dd, true)) { return(dd.ToString(format, new CoordinateDDFormatter())); } } if (cType == CoordinateType.DDM) { CoordinateDDM ddm; if (CoordinateDDM.TryParse(coord, out ddm, true)) { return(ddm.ToString(format, new CoordinateDDMFormatter())); } } if (cType == CoordinateType.DMS) { CoordinateDMS dms; if (CoordinateDMS.TryParse(coord, out dms, true)) { return(dms.ToString(format, new CoordinateDMSFormatter())); } } if (cType == CoordinateType.GARS) { CoordinateGARS gars; if (CoordinateGARS.TryParse(coord, out gars)) { return(gars.ToString(format, new CoordinateGARSFormatter())); } } if (cType == CoordinateType.MGRS) { CoordinateMGRS mgrs; if (CoordinateMGRS.TryParse(coord, out mgrs)) { return(mgrs.ToString(format, new CoordinateMGRSFormatter())); } } if (cType == CoordinateType.USNG) { CoordinateUSNG usng; if (CoordinateUSNG.TryParse(coord, out usng)) { return(usng.ToString(format, new CoordinateMGRSFormatter())); } } if (cType == CoordinateType.UTM) { CoordinateUTM utm; if (CoordinateUTM.TryParse(coord, out utm)) { return(utm.ToString(format, new CoordinateUTMFormatter())); } } return(null); }
private void UpdateSample() { var type = GetCoordinateType(); switch(type) { case CoordinateType.DD: var dd = new CoordinateDD(); if (ctdict.ContainsKey(CoordinateType.DD)) { CoordinateDD.TryParse(ctdict[type], out dd); } Sample = dd.ToString(Format, new CoordinateDDFormatter()); break; case CoordinateType.DDM: var ddm = new CoordinateDDM(); if(ctdict.ContainsKey(type)) { CoordinateDDM.TryParse(ctdict[type], out ddm); } Sample = ddm.ToString(Format, new CoordinateDDMFormatter()); break; case CoordinateType.DMS: var dms = new CoordinateDMS(); if(ctdict.ContainsKey(type)) { CoordinateDMS.TryParse(ctdict[type], out dms); } Sample = dms.ToString(Format, new CoordinateDMSFormatter()); break; case CoordinateType.GARS: var gars = new CoordinateGARS(); if(ctdict.ContainsKey(type)) { CoordinateGARS.TryParse(ctdict[type], out gars); } Sample = gars.ToString(Format, new CoordinateGARSFormatter()); break; case CoordinateType.MGRS: var mgrs = new CoordinateMGRS(); if(ctdict.ContainsKey(type)) { CoordinateMGRS.TryParse(ctdict[type], out mgrs); } Sample = mgrs.ToString(Format, new CoordinateMGRSFormatter()); break; case CoordinateType.USNG: var usng = new CoordinateUSNG(); if(ctdict.ContainsKey(type)) { CoordinateUSNG.TryParse(ctdict[type], out usng); } Sample = usng.ToString(Format, new CoordinateMGRSFormatter()); break; case CoordinateType.UTM: var utm = new CoordinateUTM(); if(ctdict.ContainsKey(type)) { CoordinateUTM.TryParse(ctdict[type], out utm); } Sample = utm.ToString(Format, new CoordinateUTMFormatter()); break; default: break; } RaisePropertyChanged(() => Sample); }