private string ScaleBarText(double scale, ScaleBarLabelText scaleText) { switch (scaleText) { case ScaleBarLabelText.NoText: return(string.Empty); case ScaleBarLabelText.JustUnits: return(_barUnitName); default: var precision = 0; //set the precision. Keep the first 5 (ScalePrecisionDigits) digits. if (scale > 0) { var magnitude = (int)(Math.Log10(scale)); precision = ScalePrecisionDigits - magnitude; if (precision < 0) { precision = 0; } if (magnitude >= 2) { //don't show the precision if the scale is less than than 1:100 (e.g. 1:1000) precision = 0; } } var format = string.Format("F{0}", precision); scale = FormatRealScale(scale); return("1:" + scale.ToString(format, System.Globalization.CultureInfo.CurrentCulture)); } }
private string ScaleBarText(double scale, ScaleBarLabelText scaleText) { switch (scaleText) { case ScaleBarLabelText.NoText: return string.Empty; case ScaleBarLabelText.JustUnits: return _barUnitName; default: var precision = 0; //set the precision. Keep the first 5 (ScalePrecisionDigits) digits. if (scale > 0) { var magnitude = (int) (Math.Log10(scale)); precision = ScalePrecisionDigits - magnitude; if (precision < 0) precision = 0; if (magnitude >= 2) //don't show the precision if the scale is less than than 1:100 (e.g. 1:1000) precision = 0; } var format = string.Format("F{0}", precision); scale = FormatRealScale(scale); return "1:" + scale.ToString(format, System.Globalization.CultureInfo.CurrentCulture); } }