protected esriUnits EsriUnits(AreaUnits unit) { switch (unit) { case AreaUnits.km2: return(esriUnits.esriKilometers); case AreaUnits.m2: return(esriUnits.esriMeters); case AreaUnits.dm2: return(esriUnits.esriDecimeters); case AreaUnits.cm2: return(esriUnits.esriCentimeters); case AreaUnits.mm2: return(esriUnits.esriMillimeters); default: throw new ArgumentOutOfRangeException(nameof(unit), unit, string.Format("Unknown area units: {0}", unit)); } }
/// <summary> /// Converts the passed in area into the specified units /// </summary> /// <param name="len">The area to convert, in square meters</param> /// <param name="units">The units to convert the area to</param> public static double?ConvertArea(double?area, AreaUnits units) { if (area == null) { return(null); } switch (units) { case AreaUnits.UnitsSquareMiles: return(area * 0.0000003861003); case AreaUnits.UnitsSquareMeters: return(area); case AreaUnits.UnitsSquareKilometers: return(area * 0.000001); case AreaUnits.UnitsSquareFeet: return(area * 10.763911); case AreaUnits.UnitsAcres: return(area * 0.000247105381); case AreaUnits.UnitsHectares: return(area * 0.0001); } return(area); }
/// <summary> /// Gets the name of the abbreviated. /// </summary> public static string GetAbbreviatedName(AreaUnits units) { switch (units) { case AreaUnits.SquareMeters: return("sq.m"); case AreaUnits.Hectares: return("ha"); case AreaUnits.SquareKilometers: return("sq.km"); case AreaUnits.SquareFeet: return("sq.ft"); case AreaUnits.SquareYards: return("sq.yd"); case AreaUnits.Acres: return("acres"); case AreaUnits.SquareMiles: return("sq.mi"); default: throw new ArgumentOutOfRangeException("units"); } }
private static double GetAreaConversionFactor(AreaUnits units) { // TODO: perhaps move it to ocx switch (units) { case AreaUnits.SquareFeet: return(0.09290304); // 0.3048 ^ 2 case AreaUnits.SquareYards: return(0.83612736); // 0.9144 ^ 2; case AreaUnits.SquareMeters: return(1.0); case AreaUnits.SquareMiles: return(2589988.110336); //1609.344 ^ 2; case AreaUnits.SquareKilometers: return(1000000.0); case AreaUnits.Hectares: return(10000.0); case AreaUnits.Acres: return(4046.856); default: throw new ArgumentOutOfRangeException("units"); } }
public Area(double value, AreaUnits unit) { if (value < 0) { throw new ArgumentOutOfRangeException(nameof(value), "Area cannot be negative."); } Value = value; Unit = unit; }
public static double Convert(AreaUnits from, AreaUnits to, double value) { if (from == to) { return(value); } value *= GetAreaConversionFactor(from); value /= GetAreaConversionFactor(to); return(value); }
public static AreaUnitSimpleType GetAreaUnit(AreaUnits dpowUnits) { switch (dpowUnits) { case AreaUnits.squaremeters: return(AreaUnitSimpleType.squaremeters); case AreaUnits.squarecentimeters: return(AreaUnitSimpleType.squarecentimeters); case AreaUnits.squaremillimeters: return(AreaUnitSimpleType.squaremillimeters); case AreaUnits.squarekilometers: return(AreaUnitSimpleType.squarekilometers); default: throw new ArgumentException("Unexpected unit"); } }
public static double Unit( [ExcelArgument("Value")] double value, [ExcelArgument("Previous unit", Name = "previous_Unit")] string _prevUnit, [ExcelArgument("New unit", Name = "new_Unit")] string _newUnit) { double prevUnit; double newUnit; if (ForceUnits.TryGetValue(_prevUnit, out prevUnit) && ForceUnits.TryGetValue(_newUnit, out newUnit)) { return(value * newUnit / prevUnit); } else if (LengthUnits.TryGetValue(_prevUnit, out prevUnit) && LengthUnits.TryGetValue(_newUnit, out newUnit)) { return(value * newUnit / prevUnit); } else if (AreaUnits.TryGetValue(_prevUnit, out prevUnit) && AreaUnits.TryGetValue(_newUnit, out newUnit)) { return(value * newUnit / prevUnit); } else if (MomentUnits.TryGetValue(_prevUnit, out prevUnit) && MomentUnits.TryGetValue(_newUnit, out newUnit)) { return(value * newUnit / prevUnit); } else if (PressureUnits.TryGetValue(_prevUnit, out prevUnit) && PressureUnits.TryGetValue(_newUnit, out newUnit)) { return(value * newUnit / prevUnit); } else { return(double.NaN); } }
private void map_MouseMove(object sender, MouseEventArgs e) { Map.Cursor = Cursors.Hand; if (originPoint != null && _isMeasuring) { _graphicCount = GraphicsLayer.Graphics.Count; int g = _graphicCount - 1; MapPoint p = Map.ScreenToMap(e.GetPosition(Map)); MapPoint midpoint = new MapPoint((p.X + originPoint.X) / 2, (p.Y + originPoint.Y) / 2); ESRI.ArcGIS.Client.Geometry.PointCollection polypoints = new ESRI.ArcGIS.Client.Geometry.PointCollection(); ESRI.ArcGIS.Client.Geometry.Polygon poly = new ESRI.ArcGIS.Client.Geometry.Polygon(); if (Type == MeasureType.Area && _points.Count > 2) { Graphic graphic = GraphicsLayer.Graphics[0]; poly = graphic.Geometry as ESRI.ArcGIS.Client.Geometry.Polygon; polypoints = poly.Rings[0]; int lastPt = polypoints.Count - 1; polypoints[lastPt] = p; } GraphicsLayer.Graphics[g - 2].Geometry = midpoint; (GraphicsLayer.Graphics[g - 1].Geometry as ESRI.ArcGIS.Client.Geometry.Polyline).Paths[0][1] = p; GraphicsLayer.Graphics[g].Geometry = midpoint; double angle = Math.Atan2((p.X - originPoint.X), (p.Y - originPoint.Y)) / Math.PI * 180 - 90; if (angle > 90 || angle < -90) { angle -= 180; } RotatingTextSymbol symb = GraphicsLayer.Graphics[g].Symbol as RotatingTextSymbol; symb.Angle = angle; double dist = Geodesic.GetSphericalDistance(originPoint, p); double distRound = RoundToSignificantDigit(dist); symb.Text = Convert.ToString(RoundToSignificantDigit(ConvertDistance(dist, DistanceUnits))); GraphicsLayer.Graphics[g].Symbol = symb; _segmentLength = distRound; _tempTotalLength = totalLength + distRound; RotatingTextSymbol totSym; if (Type == MeasureType.Distance) { totSym = GraphicsLayer.Graphics[0].Symbol as RotatingTextSymbol; totSym.Text = string.Format("Length Total:\n{0} {1}", RoundToSignificantDigit(ConvertDistance(_tempTotalLength, DistanceUnits)), DistanceUnits.ToString()); GraphicsLayer.Graphics[0].Symbol = totSym; } else { totSym = GraphicsLayer.Graphics[1].Symbol as RotatingTextSymbol; if (polypoints != null && polypoints.Count > 2) { double lastLen = Geodesic.GetSphericalDistance(polypoints[0], polypoints[polypoints.Count - 1]); poly = GraphicsLayer.Graphics[0].Geometry as ESRI.ArcGIS.Client.Geometry.Polygon; MapPoint anchor = poly.Extent.GetCenter(); ESRI.ArcGIS.Client.Geometry.PointCollection temppoints = new ESRI.ArcGIS.Client.Geometry.PointCollection(); foreach (MapPoint point in poly.Rings[0]) { temppoints.Add(point); } temppoints.Add(poly.Rings[0][0]); ESRI.ArcGIS.Client.Geometry.PointCollection pts = ToKmMapPoint(temppoints); double area = GetArea(pts); //double area = GetArea(ToKMMapPoint(polypoints)); totSym.Text = string.Format("Area:\n{0} {1}", RoundToSignificantDigit(area), AreaUnits.ToString()); GraphicsLayer.Graphics[1].Geometry = anchor; GraphicsLayer.Graphics[1].Symbol = totSym; } } } }
public Area(AreaUnits currentUnit = AreaUnits.m2) : base(currentUnit) { DefaultUnit = AreaUnits.m2; }
/// <summary> /// Converts the given rate to a rate per square feet. /// </summary> /// <param name="rate"></param> /// <param name="areaUnits"></param> /// <returns></returns> public static decimal RatePerSquareFoot(decimal rate, AreaUnits areaUnits = AreaUnits.SquareMeters) => (areaUnits == AreaUnits.SquareFeet) ? rate : rate / SqFeetPerSqMeter;
public Area(Resources res, Buildings buildings, params Tuple <string, string>[] properties) : base(properties) { this.resources = new Resources(); this.buildings = new Buildings(); this.units = new AreaUnits(); }
public override void OnApplyTemplate() #endif { base.OnApplyTemplate(); _measureLengthButton = GetTemplateChild("MeasureLength") as ToggleButton; if (_measureLengthButton != null) { _measureLengthButton.Click += OnToggleMeasureMode; } _measureAreaButton = GetTemplateChild("MeasureArea") as ToggleButton; if (_measureAreaButton != null) { _measureAreaButton.Click += OnToggleMeasureMode; } _measureFeatureButton = GetTemplateChild("MeasureFeature") as ToggleButton; if (_measureFeatureButton != null) { _measureFeatureButton.Click += OnToggleMeasureMode; } _clearButton = GetTemplateChild("Clear") as ButtonBase; if (_clearButton != null) { _measureFeatureResultOverlay.Graphics.CollectionChanged += (s, e) => { if (Mode == MeasureToolbarMode.Feature) { _clearButton.IsEnabled = _measureFeatureResultOverlay.Graphics.Any(); AddMeasureFeatureResultOverlay(MapView); } }; _clearButton.Click += OnClear; } _measureResultTextBlock = GetTemplateChild("MeasureResult") as TextBlock; _linearUnitsSelector = GetTemplateChild("LinearUnitsSelector") as UIElement; _areaUnitsSelector = GetTemplateChild("AreaUnitsSelector") as UIElement; if (LinearUnits == null || !LinearUnits.Any()) { LinearUnits = new LinearUnit[] { Geometry.LinearUnits.Centimeters, Geometry.LinearUnits.Feet, Geometry.LinearUnits.Inches, Geometry.LinearUnits.Kilometers, Geometry.LinearUnits.Meters, Geometry.LinearUnits.Miles, Geometry.LinearUnits.Millimeters, Geometry.LinearUnits.NauticalMiles, Geometry.LinearUnits.Yards }; } if (SelectedLinearUnit == null) { SelectedLinearUnit = LinearUnits.Any(u => u == Geometry.LinearUnits.Meters) ? Geometry.LinearUnits.Meters : LinearUnits.FirstOrDefault(); } if (AreaUnits == null || !AreaUnits.Any()) { AreaUnits = new AreaUnit[] { Geometry.AreaUnits.Acres, Geometry.AreaUnits.Hectares, Geometry.AreaUnits.SquareCentimeters, Geometry.AreaUnits.SquareDecimeters, Geometry.AreaUnits.SquareFeet, Geometry.AreaUnits.SquareKilometers, Geometry.AreaUnits.SquareMeters, Geometry.AreaUnits.SquareMiles, Geometry.AreaUnits.SquareMillimeters, Geometry.AreaUnits.SquareYards }; } if (SelectedAreaUnit == null) { SelectedAreaUnit = AreaUnits.Any(u => u == Geometry.AreaUnits.SquareMiles) ? Geometry.AreaUnits.SquareMiles : AreaUnits.FirstOrDefault(); } if (LineSketchEditor == null) { LineSketchEditor = new SketchEditor(); } if (AreaSketchEditor == null) { AreaSketchEditor = new SketchEditor(); } if (SelectionLineSymbol == null) { SelectionLineSymbol = LineSketchEditor?.Style?.LineSymbol; } if (SelectionFillSymbol == null) { SelectionFillSymbol = AreaSketchEditor?.Style?.FillSymbol; } Mode = MeasureToolbarMode.None; PrepareMeasureMode(); }
//Method for laoding units into combo boxes private void UnitsLoading(string SelectedOp) { try { if (units == null) { } else { units.Clear(); if (unitsMults == null) { } else { unitsMults.Clear(); } } units = new List <string>(); unitsMults = new List <string>(); switch (SelectedOp) { case "Length": { LengthUnits unit = new LengthUnits(); MetersMults mults = new MetersMults(); var units2 = Enum.GetValues(unit.GetType()); var multiples = Enum.GetValues(mults.GetType()); foreach (var item in units2) { units.Add(item.ToString()); } foreach (var item in multiples) { unitsMults.Add(item.ToString()); } break; } case "Mass and Weight": { MassUnits unit = new MassUnits(); KilogMults mults = new KilogMults(); var multiples = Enum.GetValues(mults.GetType()); var units2 = Enum.GetValues(unit.GetType()); foreach (var item in units2) { units.Add(item.ToString()); } foreach (var item in multiples) { unitsMults.Add(item.ToString()); } break; } case "Power": { PowerUnits unit = new PowerUnits(); WattMults mults = new WattMults(); var multiples = Enum.GetValues(mults.GetType()); var units2 = Enum.GetValues(unit.GetType()); foreach (var item in units2) { units.Add(item.ToString()); } foreach (var item in multiples) { unitsMults.Add(item.ToString()); } break; } case "Pressure": { PressureUnits unit = new PressureUnits(); PascaMults mults = new PascaMults(); var multiples = Enum.GetValues(mults.GetType()); var units2 = Enum.GetValues(unit.GetType()); foreach (var item in units2) { units.Add(item.ToString()); } foreach (var item in multiples) { unitsMults.Add(item.ToString()); } break; } case "Energy": { EnergyUnits unit = new EnergyUnits(); JouleMults mults = new JouleMults(); var multiples = Enum.GetValues(mults.GetType()); var units2 = Enum.GetValues(unit.GetType()); foreach (var item in units2) { units.Add(item.ToString()); } foreach (var item in multiples) { unitsMults.Add(item.ToString()); } break; } case "Temperature": { TemperatureUnits unit = new TemperatureUnits(); var units2 = Enum.GetValues(unit.GetType()); foreach (var item in units2) { units.Add(item.ToString()); } unitsMults.Add("Temperature doesn't have Multiples\n Please choose other option"); break; } case "Volume": { VolumeUnits unit = new VolumeUnits(); M3Mults mults = new M3Mults(); var multiples = Enum.GetValues(mults.GetType()); var units2 = Enum.GetValues(unit.GetType()); foreach (var item in units2) { units.Add(item.ToString()); } foreach (var item in multiples) { unitsMults.Add(item.ToString()); } break; } case "Angle": { AngleUnits unit = new AngleUnits(); var units2 = Enum.GetValues(unit.GetType()); foreach (var item in units2) { units.Add(item.ToString()); } unitsMults.Add("Angle doesn't have Multiples\n Please choose other option"); break; } case "Area": { AreaUnits unit = new AreaUnits(); MetersqrMults mults = new MetersqrMults(); var multiples = Enum.GetValues(mults.GetType()); var units2 = Enum.GetValues(unit.GetType()); foreach (var item in units2) { units.Add(item.ToString()); } foreach (var item in multiples) { unitsMults.Add(item.ToString()); } break; } case "Speed": { SpeedUnits unit = new SpeedUnits(); MPSMults mults = new MPSMults(); var multiples = Enum.GetValues(mults.GetType()); var units2 = Enum.GetValues(unit.GetType()); foreach (var item in units2) { units.Add(item.ToString()); } foreach (var item in multiples) { unitsMults.Add(item.ToString()); } break; } case "Time": { TimeUnits unit = new TimeUnits(); var units2 = Enum.GetValues(unit.GetType()); foreach (var item in units2) { units.Add(item.ToString()); } unitsMults.Add("Time doesn't have Multiples\n Please choose other option"); break; } } Fromcombo.Items.Clear(); ToCombo.Items.Clear(); MultsFromcombo.Items.Clear(); MultsTocombo.Items.Clear(); foreach (var v in units) { ComboBoxItem boxItem = new ComboBoxItem(); boxItem.Background = new SolidColorBrush(Color.FromArgb(System.Convert.ToByte(255), System.Convert.ToByte(40), System.Convert.ToByte(40), System.Convert.ToByte(40))); boxItem.Foreground = Brushes.Beige; boxItem.Opacity = 0.8; boxItem.BorderThickness = new Thickness(0.0); boxItem.Content = v; Fromcombo.Items.Add(boxItem); } foreach (var v in units) { ComboBoxItem boxItem = new ComboBoxItem(); boxItem.Background = new SolidColorBrush(Color.FromArgb(System.Convert.ToByte(255), System.Convert.ToByte(40), System.Convert.ToByte(40), System.Convert.ToByte(40))); boxItem.Foreground = Brushes.Beige; boxItem.Opacity = 0.8; boxItem.BorderThickness = new Thickness(0.0); boxItem.Content = v; ToCombo.Items.Add(boxItem); } foreach (var v in unitsMults) { ComboBoxItem boxItem = new ComboBoxItem(); boxItem.Background = new SolidColorBrush(Color.FromArgb(System.Convert.ToByte(255), System.Convert.ToByte(40), System.Convert.ToByte(40), System.Convert.ToByte(40))); boxItem.Foreground = Brushes.Beige; boxItem.Opacity = 0.8; boxItem.BorderThickness = new Thickness(0.0); boxItem.Content = v; MultsFromcombo.Items.Add(boxItem); } foreach (var v in unitsMults) { ComboBoxItem boxItem = new ComboBoxItem(); boxItem.Background = new SolidColorBrush(Color.FromArgb(System.Convert.ToByte(255), System.Convert.ToByte(40), System.Convert.ToByte(40), System.Convert.ToByte(40))); boxItem.Foreground = Brushes.Beige; boxItem.Opacity = 0.8; boxItem.BorderThickness = new Thickness(0.0); boxItem.Content = v; MultsTocombo.Items.Add(boxItem); } Fromcombo.SelectedIndex = 0; ToCombo.SelectedIndex = 0; MultsFromcombo.SelectedIndex = 0; MultsTocombo.SelectedIndex = 0; SelectedFrom = Fromcombo.SelectedItem.ToString().Remove(0, 38); SelectedTo = ToCombo.SelectedItem.ToString().Remove(0, 38); SelMultsFrom = MultsFromcombo.SelectedItem.ToString().Remove(0, 38); SelMultsTo = MultsTocombo.SelectedItem.ToString().Remove(0, 38); } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message + "\nPlease Retry", "Loading-Content-Error"); } }
/// <summary> /// Converts the given area to square feet. /// </summary> /// <param name="area"></param> /// <param name="areaUnits"></param> /// <returns></returns> public static decimal ConvertToSquareFeet(decimal area, AreaUnits areaUnits = AreaUnits.SquareMeters) => (areaUnits == AreaUnits.SquareFeet) ? area : area * SqFeetPerSqMeter;
public override void OnApplyTemplate() #endif { base.OnApplyTemplate(); _measureLengthButton = GetTemplateChild("MeasureLength") as ToggleButton; if (_measureLengthButton != null) { _measureLengthButton.Click += OnToggleMeasureMode; } _measureAreaButton = GetTemplateChild("MeasureArea") as ToggleButton; if (_measureAreaButton != null) { _measureAreaButton.Click += OnToggleMeasureMode; } _measureFeatureButton = GetTemplateChild("MeasureFeature") as ToggleButton; if (_measureFeatureButton != null) { _measureFeatureButton.Click += OnToggleMeasureMode; } _clearButton = GetTemplateChild("Clear") as ButtonBase; if (_clearButton != null) { _measureFeatureResultOverlay.Graphics.CollectionChanged += (s, e) => { if (Mode == MeasureToolbarMode.Feature) { _clearButton.IsEnabled = _measureFeatureResultOverlay.Graphics.Any(); AddMeasureFeatureResultOverlay(MapView); } }; _clearButton.Click += OnClear; } _measureResultTextBlock = GetTemplateChild("MeasureResult") as TextBlock; _linearUnitsSelector = GetTemplateChild("LinearUnitsSelector") as UIElement; _areaUnitsSelector = GetTemplateChild("AreaUnitsSelector") as UIElement; // Base default unit selection on the culture the app is running under var useMetric = !"en-us".Equals(Language.ToString(), StringComparison.OrdinalIgnoreCase); if (SelectedLinearUnit == null) { if (useMetric) { SelectedLinearUnit = LinearUnits.Any(u => u == Geometry.LinearUnits.Meters) ? Geometry.LinearUnits.Meters : LinearUnits.FirstOrDefault(); } else { SelectedLinearUnit = LinearUnits.Any(u => u == Geometry.LinearUnits.Feet) ? Geometry.LinearUnits.Feet : LinearUnits.FirstOrDefault(); } } if (SelectedAreaUnit == null) { if (useMetric) { SelectedAreaUnit = AreaUnits.Any(u => u == Geometry.AreaUnits.SquareKilometers) ? Geometry.AreaUnits.SquareKilometers : AreaUnits.FirstOrDefault(); } else { SelectedAreaUnit = AreaUnits.Any(u => u == Geometry.AreaUnits.SquareMiles) ? Geometry.AreaUnits.SquareMiles : AreaUnits.FirstOrDefault(); } } PrepareMeasureMode(); }
public Area() : base() { this.resources = new Resources(); this.buildings = new Buildings(); this.units = new AreaUnits(); }