protected override void OnClick()
{
if (ArcMap.Document == null || ArcMap.Document.CurrentLocation == null || ctype == CoordinateConversionLibrary.Models.CoordinateType.Unknown)
return;
var point = ArcMap.Document.CurrentLocation;
string coord = string.Empty;
try
{
var cn = point as IConversionNotation;
switch(ctype)
{
case CoordinateType.DD:
coord = cn.GetDDFromCoords(6);
break;
case CoordinateType.DDM:
coord = cn.GetDDMFromCoords(6);
break;
case CoordinateType.DMS:
coord = cn.GetDMSFromCoords(2);
break;
case CoordinateType.GARS:
coord = cn.GetGARSFromCoords();
break;
case CoordinateType.MGRS:
coord = cn.CreateMGRS(5, true, esriMGRSModeEnum.esriMGRSMode_Automatic);
break;
case CoordinateType.USNG:
coord = cn.GetUSNGFromCoords(5, true, true);
break;
case CoordinateType.UTM:
coord = cn.GetUTMFromCoords(esriUTMConversionOptionsEnum.esriUTMAddSpaces | esriUTMConversionOptionsEnum.esriUTMUseNS);
break;
default:
break;
}
var doc = AddIn.FromID<ArcMapAddinCoordinateConversion.DockableWindowCoordinateConversion.AddinImpl>(ThisAddIn.IDs.DockableWindowCoordinateConversion);
if (doc != null)
{
var vm = doc.GetMainVM();
if(vm != null)
{
coord = vm.GetFormattedCoordinate(coord, ctype);
}
}
System.Windows.Clipboard.SetText(coord);
}
catch { }
}