// use base CanGetDD public override bool CanGetDDM(int srFactoryCode, out string coord) { coord = string.Empty; if(base.CanGetDDM(srFactoryCode, out coord)) { return true; } else { if(base.CanGetDD(srFactoryCode, out coord)) { // convert dd to ddm CoordinateDD dd; if(CoordinateDD.TryParse(coord, out dd)) { var ddm = new CoordinateDDM(dd); coord = ddm.ToString("", new CoordinateDDMFormatter()); return true; } } } return false; }
public void FormatterDDM() { var coord = new CoordinateDDM(40, 16.38288, -78, 50.84562); var temp = coord.ToString("", new CoordinateDDMFormatter()); Assert.AreEqual(temp, "40°16.38288' -78°50.84562'"); temp = coord.ToString("A0°B0.0#####'N X0°Y0.0#####'E", new CoordinateDDMFormatter()); Assert.AreEqual(temp, "40°16.38288'N 78°50.84562'W"); temp = coord.ToString("A+-0°B0.0#####' X+-0°Y0.0#####'", new CoordinateDDMFormatter()); Assert.AreEqual(temp, "+40°16.38288' -78°50.84562'"); temp = coord.ToString("NA0°B0.0#####' EX0°Y0.0#####'", new CoordinateDDMFormatter()); Assert.AreEqual(temp, "N40°16.38288' W78°50.84562'"); temp = coord.ToString("A0°B0.0#####'N, X0°Y0.0#####'E", new CoordinateDDMFormatter()); Assert.AreEqual(temp, "40°16.38288'N, 78°50.84562'W"); temp = coord.ToString("A0° B0.0#####'N X0° Y0.0#####'E", new CoordinateDDMFormatter()); Assert.AreEqual(temp, "40° 16.38288'N 78° 50.84562'W"); }
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); }