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));
        }
Пример #2
0
        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)));
 }