public static SnappingAdapter Convert(double snappingDistance, SnappingDistanceUnit snappingDistanceUnit, MapArguments mapArguments, PointShape worldCoordinate) { DistanceUnit tempDistanceUnit = defaultDistanceUnit; if (snappingDistanceUnit != SnappingDistanceUnit.Pixel) { tempDistanceUnit = (DistanceUnit)snappingDistanceUnit; } double tempDistance = snappingDistance; if (snappingDistanceUnit == SnappingDistanceUnit.Pixel) { double worldDistance = snappingDistance * mapArguments.CurrentResolution; PointShape targetWorldCoordinate = new PointShape(worldCoordinate.X + worldDistance, worldCoordinate.Y); tempDistance = worldCoordinate.GetDistanceTo(targetWorldCoordinate, mapArguments.MapUnit, defaultDistanceUnit); } return(new SnappingAdapter(tempDistance, tempDistanceUnit)); }
public override ValidationResult Validate(object value, CultureInfo cultureInfo) { ValidationResult result = null; double inputValue = 0; bool isDouble = double.TryParse(value.ToString(), out inputValue); if (isDouble && GisEditor.ActiveMap != null) { GisEditorEditInteractiveOverlay editOverlay = GisEditor.ActiveMap.FeatureLayerEditOverlay; if (editOverlay != null) { SnappingDistanceUnit unit = editOverlay.SnappingDistanceUnit; if (distanceMaxValues.ContainsKey(unit)) { double maxValue = distanceMaxValues[unit]; if (inputValue > maxValue) { result = new ValidationResult(false, null); } else { result = new ValidationResult(true, null); } } else { result = new ValidationResult(true, null); } } } else { result = new ValidationResult(false, null); } return(result); }
public override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value is SnappingDistanceUnit) { SnappingDistanceUnit unit = (SnappingDistanceUnit)value; switch (unit) { case SnappingDistanceUnit.Meter: return("Meters"); case SnappingDistanceUnit.Kilometer: return("Kilometers"); case SnappingDistanceUnit.Mile: return("Miles"); case SnappingDistanceUnit.UsSurveyFeet: return("US Survey Feet"); case SnappingDistanceUnit.Yard: return("Yards"); case SnappingDistanceUnit.NauticalMile: return("Nautical Miles"); case SnappingDistanceUnit.Feet: default: return(value.ToString()); } } else if (value is String) { string unitInString = value.ToString(); SnappingDistanceUnit result = SnappingDistanceUnit.Feet; switch (unitInString) { case "Meters": result = SnappingDistanceUnit.Meter; break; case "Feet": result = SnappingDistanceUnit.Feet; break; case "Kilometers": result = SnappingDistanceUnit.Kilometer; break; case "Miles": result = SnappingDistanceUnit.Mile; break; case "US Survey Feet": result = SnappingDistanceUnit.UsSurveyFeet; break; case "Yards": result = SnappingDistanceUnit.Yard; break; case "Nautical Miles": result = SnappingDistanceUnit.NauticalMile; break; default: break; } return(result); } else { return(Binding.DoNothing); } }
public static SnappingAdapter Convert(double snappingDistance, SnappingDistanceUnit snappingDistanceUnit, MapArguments mapArguments, Vertex worldCoordinate) { return(Convert(snappingDistance, snappingDistanceUnit, mapArguments, new PointShape(worldCoordinate))); }