public void RaiseCallbackEvent(string eventArgument) { //Random rand = new Random(); //_callbackresult = rand.Next().ToString(); net.webservicex.www.AreaUnit area = new AreaUnit(); _callbackresult = area.ChangeAreaUnit(double.Parse(eventArgument), Areas.square, Areas.acre).ToString(); }
public void AreaConversions(double value1, AreaUnit units1, double value2, AreaUnit units2) { new Area(value1, units1) { Units = units2 }.Value.ShouldBeWithinEpsilonOf(value2); new Area(value2, units2) { Units = units1 }.Value.ShouldBeWithinEpsilonOf(value1); }
public Area(double value, AreaUnit unit) : base(FLT.Area, NormalizeValue(value, unit), DefaultUnit) { }
public void calcArea(List <PackageArea> list, PackageArea area, decimal width, decimal height, decimal cigseq, AreaUnit unit) { list.Remove(area); // list.RemoveAll(x => x.beginx == area.beginx); PackageArea areal = new PackageArea(); PackageArea areaC = new PackageArea(); PackageArea arear = new PackageArea(); areal.left = area.left; areal.right = areaC; areal.beginx = area.beginx; areal.width = unit.beginx; areal.height = area.height; List <Cigarette> temp = area.cigaretteList.Where(x => x.index < unit.begin).ToList(); areal.cigaretteList = new List <Cigarette>(); areal.cigaretteList.AddRange(temp); //if (area.left != null) //{ // area.left.right = areal; // if (Math.Abs(area.left.height - areal.height) <= deviation) // { // areal.left = area.left.left; // areal.beginx = area.left.beginx; // areal.cigaretteList = area.left.cigaretteList; // areal.cigaretteList.AddRange(areal.cigaretteList); // //(new Cigarette() { CigaretteNo = cigseq, fromx = area.left.width, tox = area.left.width + width, width = width }); // areal.width = area.left.width + areal.width; // if (areal.height < area.left.height) // { // areal.height = area.left.height; // } // list.Remove(area.left); // } //} areaC.left = areal; areaC.beginx = area.beginx + unit.beginx; areaC.height = height; areaC.width = width; areaC.cigaretteList = new List <Cigarette> { new Cigarette() { CigaretteNo = cigseq, fromx = 0, tox = width, width = width } }; areaC.right = arear; arear.left = areaC; arear.beginx = areaC.beginx + width; arear.width = area.width - width - unit.beginx; arear.height = area.height; arear.right = area.right; Cigarette tempC = area.cigaretteList.Where(x => x.index == unit.begin).FirstOrDefault(); if (tempC.width < width) { arear.cigaretteList = area.cigaretteList.Where(x => x.index > unit.begin).ToList(); arear.cigaretteList[0].width -= (width - tempC.width); } else { arear.cigaretteList = area.cigaretteList.Where(x => x.index >= unit.begin).ToList(); arear.cigaretteList[0].width -= width; } //arear.cigaretteList[0].tox = arear.width; //arear.cigaretteList[0].width = arear.width; if (area.right != null) { area.right.left = arear; } list.Add(areal); list.Add(areaC); list.Add(arear); }
public static string GetAbbreviation(AreaUnit unit, CultureInfo culture = null) { return(UnitSystem.GetCached(culture).GetDefaultAbbreviation(unit)); }
public string ToString(AreaUnit unit, CultureInfo culture, string format, params object[] args) { return(string.Format(culture, format, UnitFormatter.GetFormatArgs(unit, As(unit), culture, args))); }
public void Conversion(double value, AreaUnit unit, double expected, AreaUnit targetUnit, double accurracy = 1e-10) { var v = new Measurement <AreaUnit>(value, unit); v.In(targetUnit).Should().BeApproximately(expected, accurracy); }
private double ConvertAreaUnits(double area, MapUnit baseUnits, AreaUnit toUnits) { double mArea = area; if (baseUnits == MapUnit.Feet) { if (toUnits == AreaUnit.Acres) mArea = area * 0.000022956; else if (toUnits == AreaUnit.Sq_Meters) mArea = area * 0.09290304; else if (toUnits == AreaUnit.Sq_Miles) mArea = area * 0.00000003587; else if (toUnits == AreaUnit.Sq_Kilometers) mArea = area * 0.09290304 / 1000000; } else if (baseUnits == MapUnit.Meters) { if (toUnits == AreaUnit.Acres) mArea = area * 0.0002471054; else if (toUnits == AreaUnit.Sq_Miles) mArea = area * 0.0000003861003; else if (toUnits == AreaUnit.Sq_Kilometers) mArea = area * 1.0e-6; else if (toUnits == AreaUnit.Sq_Feet) mArea = area * 10.76391042; } return mArea; }
/// <summary> /// Initializes a new instance of <see cref="Gu.Units.Wpf.AreaConverter"/>. /// </summary> /// <param name="unit"><see cref="Gu.Units.AreaUnit"/>.</param> public AreaConverter(AreaUnit unit) { Unit = unit; }
public double To(AreaUnit unit) { return _value.ConvertTo(unit); }
public static Area From(double value, AreaUnit fromUnit) { return(new Area((double)value, fromUnit)); }
private void CustomizeFixture(Fixture fixture) { // Customize common fixture setup here fixture.Customize <number>(e => e.FromFactory(() => fixture.CreateInRange(-100, 100))); fixture.Customize <TimeSpan>(e => e.FromFactory(() => TimeSpan.FromSeconds(fixture.Create <double>()))); fixture.Customize <Time>(e => e.FromFactory(() => new Time(fixture.Create <number>()))); fixture.Customize <WeightUnit>(e => e.FromFactory(() => fixture.CreateFromSet(WeightUnit.GetPredefinedUnits()))); fixture.Customize <Weight>(e => e.FromFactory(() => new Weight(fixture.Create <number>()).Convert(fixture.Create <WeightUnit>()))); fixture.Customize <LengthUnit>(e => e.FromFactory(() => fixture.CreateFromSet(LengthUnit.GetPredefinedUnits()))); fixture.Customize <Length>(e => e.FromFactory(() => new Length(fixture.Create <number>()).Convert(fixture.Create <LengthUnit>()))); fixture.Customize <SpeedUnit>(e => e.FromFactory(() => fixture.CreateFromSet(SpeedUnit.GetPredefinedUnits()))); fixture.Customize <Speed>(e => e.FromFactory(() => new Speed(fixture.Create <number>()).Convert(fixture.Create <SpeedUnit>()))); fixture.Customize <AreaUnit>(e => e.FromFactory(() => fixture.CreateFromSet(AreaUnit.GetPredefinedUnits()))); fixture.Customize <Area>(e => e.FromFactory(() => new Area(fixture.Create <number>()).Convert(fixture.Create <AreaUnit>()))); fixture.Customize <VolumeUnit>(e => e.FromFactory(() => fixture.CreateFromSet(VolumeUnit.GetPredefinedUnits()))); fixture.Customize <Volume>(e => e.FromFactory(() => new Volume(fixture.Create <number>()).Convert(fixture.Create <VolumeUnit>()))); fixture.Customize <PowerUnit>(e => e.FromFactory(() => fixture.CreateFromSet(PowerUnit.GetPredefinedUnits()))); fixture.Customize <Power>(e => e.FromFactory(() => new Power(fixture.Create <number>()).Convert(fixture.Create <PowerUnit>()))); fixture.Customize <EnergyUnit>(e => e.FromFactory(() => fixture.CreateFromSet(EnergyUnit.GetPredefinedUnits()))); fixture.Customize <Energy>(e => e.FromFactory(() => new Energy(fixture.Create <number>()).Convert(fixture.Create <EnergyUnit>()))); fixture.Customize <AngleUnit>(e => e.FromFactory(() => fixture.CreateFromSet(AngleUnit.GetPredefinedUnits()))); fixture.Customize <Angle>(e => e.FromFactory(() => new Angle(fixture.Create <number>()).Convert(fixture.Create <AngleUnit>()))); fixture.Customize <DegreeAngle>(e => e.FromFactory(() => new DegreeAngle(fixture.Create <number>()))); fixture.Customize <RadianAngle>(e => e.FromFactory(() => new RadianAngle(fixture.Create <number>()))); fixture.Customize <GeoCoordinate>(e => e.FromFactory(() => new GeoCoordinate( latitude: fixture.CreateInRange(GeoCoordinate.MinLatitude.TotalDegrees, GeoCoordinate.MaxLatitude.TotalDegrees), longitude: fixture.CreateInRange(GeoCoordinate.MinLongitude.TotalDegrees, GeoCoordinate.MaxLongitude.TotalDegrees)))); }
void drawtool_DrawComplete(object sender, DrawEventArgs e) { e.Geometry.SpatialReference = MyMap.SpatialReference; Graphic graphic = new Graphic() { Geometry = e.Geometry }; if (e.Geometry is MapPoint) { graphic.Symbol = LayoutRoot.Resources["DrawPointSymbol"] as SimpleMarkerSymbol; } else if (e.Geometry is Polyline) { graphic.Symbol = LayoutRoot.Resources["DrawPolylineSymbol"] as SimpleLineSymbol; } else if (e.Geometry is Polygon || e.Geometry is Envelope) { graphic.Symbol = LayoutRoot.Resources["DrawPolygonSymbol"] as SimpleFillSymbol; } drawGraphicsLayer.Graphics.Add(graphic); draw.IsEnabled = false; Geometry fromGeometry = null; Geometry toGeometry = null; switch (mensurationOperation) { case MensurationOperation.DistanceAndAngle: case MensurationOperation.HeightFromBaseAndTop: case MensurationOperation.HeightFromBaseAndTopShadow: case MensurationOperation.HeightFromTopAndTopShadow: fromGeometry = (e.Geometry as Polyline).Paths[0][0]; fromGeometry.SpatialReference = MyMap.SpatialReference; try { toGeometry = (e.Geometry as Polyline).Paths[0][1]; toGeometry.SpatialReference = MyMap.SpatialReference; } catch (Exception) { } break; case MensurationOperation.AreaAndPerimeter: case MensurationOperation.Centroid: case MensurationOperation.Point: fromGeometry = e.Geometry; break; } esriUnits?LinearUnit = null; switch (comboLinearUnit.SelectedIndex) { case 0: LinearUnit = esriUnits.esriUnknownUnits; break; case 1: LinearUnit = esriUnits.esriInches; break; case 2: LinearUnit = esriUnits.esriPoints; break; case 3: LinearUnit = esriUnits.esriFeet; break; case 4: LinearUnit = esriUnits.esriYards; break; case 5: LinearUnit = esriUnits.esriMiles; break; case 6: LinearUnit = esriUnits.esriNauticalMiles; break; case 7: LinearUnit = esriUnits.esriMillimeters; break; case 8: LinearUnit = esriUnits.esriCentimeters; break; case 9: LinearUnit = esriUnits.esriMeters; break; case 10: LinearUnit = esriUnits.esriKilometers; break; case 11: LinearUnit = esriUnits.esriDecimalDegrees; break; case 12: LinearUnit = esriUnits.esriDecimeters; break; } DirectionUnit AngularUnit = DirectionUnit.Default; switch (comboAngularUnit.SelectedIndex) { case 0: AngularUnit = DirectionUnit.Default; break; case 1: AngularUnit = DirectionUnit.Radians; break; case 2: AngularUnit = DirectionUnit.DecimalDegrees; break; case 3: AngularUnit = DirectionUnit.DegreesMinutesSeconds; break; case 4: AngularUnit = DirectionUnit.Gradians; break; case 5: AngularUnit = DirectionUnit.Gons; break; } AreaUnit AreaUnits = AreaUnit.Default; switch (comboAreaUnit.SelectedIndex) { case 0: AreaUnits = AreaUnit.Default; break; case 1: AreaUnits = AreaUnit.SquareInches; break; case 2: AreaUnits = AreaUnit.SquareFeet; break; case 3: AreaUnits = AreaUnit.SquareYards; break; case 4: AreaUnits = AreaUnit.Acres; break; case 5: AreaUnits = AreaUnit.SquareMiles; break; case 6: AreaUnits = AreaUnit.SquareMillimeters; break; case 7: AreaUnits = AreaUnit.SquareCentimeters; break; case 8: AreaUnits = AreaUnit.SquareDecimeters; break; case 9: AreaUnits = AreaUnit.SquareMeters; break; case 10: AreaUnits = AreaUnit.Ares; break; case 11: AreaUnits = AreaUnit.Hectares; break; case 12: AreaUnits = AreaUnit.SquareKilometers; break; } if (!mensurationTask.IsBusy) { switch (mensurationOperation) { case MensurationOperation.AreaAndPerimeter: MensurationAreaParameter p1 = new MensurationAreaParameter(); p1.LinearUnit = LinearUnit; p1.AreaUnits = AreaUnits; mensurationTask.AreaAndPerimeterAsync(fromGeometry as Polygon, p1); break; case MensurationOperation.Centroid: MensurationPointParameter p3 = new MensurationPointParameter(); mensurationTask.CentroidAsync(fromGeometry as Polygon, p3); break; case MensurationOperation.DistanceAndAngle: MensurationLengthParameter p5 = new MensurationLengthParameter(); p5.LinearUnit = LinearUnit; p5.AngularUnit = AngularUnit; mensurationTask.DistanceAndAngleAsync(fromGeometry as MapPoint, toGeometry as MapPoint, p5); break; case MensurationOperation.Point: MensurationPointParameter p7 = new MensurationPointParameter(); mensurationTask.PointAsync(fromGeometry as MapPoint, p7); break; case MensurationOperation.HeightFromBaseAndTop: MensurationHeightParameter p9 = new MensurationHeightParameter(); p9.LinearUnit = LinearUnit; mensurationTask.HeightFromBaseAndTopAsync(fromGeometry as MapPoint, toGeometry as MapPoint, p9); break; case MensurationOperation.HeightFromBaseAndTopShadow: MensurationHeightParameter p10 = new MensurationHeightParameter(); p10.LinearUnit = LinearUnit; mensurationTask.HeightFromBaseAndTopShadowAsync(fromGeometry as MapPoint, toGeometry as MapPoint, p10); break; case MensurationOperation.HeightFromTopAndTopShadow: MensurationHeightParameter p11 = new MensurationHeightParameter(); p11.LinearUnit = LinearUnit; mensurationTask.HeightFromTopAndTopShadowAsync(fromGeometry as MapPoint, toGeometry as MapPoint, p11); break; } } }
/// <summary> /// Dynamically convert from value and unit enum <see cref="AreaUnit" /> to <see cref="Area" />. /// </summary> /// <param name="value">Value to convert from.</param> /// <param name="fromUnit">Unit to convert from.</param> /// <returns>Area unit value.</returns> public static Area?From(QuantityValue?value, AreaUnit fromUnit) { return(value.HasValue ? new Area((double)value.Value, fromUnit) : default(Area?)); }
public static AreaConversion ConvertFrom(this double value, AreaUnit unit) { return new AreaConversion(value * unit.GetConversionFactor()); }
private Area CreateAreaInUnit(AreaUnit unit) => Fixture .Create <Area>() .Convert(unit);
/// <summary> /// Get string representation of value and unit. Using two significant digits after radix. /// </summary> /// <param name="unit">Unit representation to use.</param> /// <param name="provider">Format to use for localization and number formatting. Defaults to <see cref="UnitSystem.DefaultCulture" />.</param> /// <returns>String representation.</returns> public string ToString(AreaUnit unit, [CanBeNull] IFormatProvider provider) { return(ToString(unit, provider, 2)); }
/// <summary> /// Get the Area in whatever unit you want /// </summary> /// <param name="cellArea"></param> /// <param name="outputUnits"></param> /// <returns></returns> public double GetAreaValue(Area cellArea, AreaUnit outputUnits) { return(GetArea(cellArea).As(outputUnits)); }
public static string GetAbbreviation(AreaUnit unit, [CanBeNull] IFormatProvider provider) { provider = provider ?? UnitSystem.DefaultCulture; return(UnitSystem.GetCached(provider).GetDefaultAbbreviation(unit)); }
public void Parse_ReturnsUnitMappedByCustomAbbreviation(string customAbbreviation, AreaUnit expected) { var abbrevCache = new UnitAbbreviationsCache(); abbrevCache.MapUnitToAbbreviation(expected, customAbbreviation); var parser = new UnitParser(abbrevCache); var actual = parser.Parse <AreaUnit>(customAbbreviation); Assert.Equal(expected, actual); }
public static void HasConversion(this PropertyBuilder <Area> propertyBuilder, AreaUnit unit) => propertyBuilder.HasConversion(v => v.As(unit), v => new Area(v, unit));
public string ProcessMeasureRequest(NameValueCollection queryString) { if (m_mapFunctionality == null) GetMeasureResource(); object o = Session["MeasureMapUnits"]; if (o != null) m_mapUnits = (MapUnit)Enum.Parse(typeof(MapUnit), o.ToString()); else if (m_startMapUnits == MapUnit.Resource_Default) m_mapUnits = GetResourceDefaultMapUnit(); else m_mapUnits = m_startMapUnits; string eventArg = queryString["EventArg"].ToLower(); string vectorAction = queryString["VectorAction"].ToLower(); string[] coordPairs, xys; string coordString = queryString["coords"]; if (coordString == null && coordString.Length == 0) coordString = ""; coordPairs = coordString.Split(char.Parse("|")); string mapUnitString = queryString["MapUnits"]; if (mapUnitString != null && mapUnitString.Length > 0) m_mapUnits = (MapUnit)Enum.Parse(typeof(MapUnit), mapUnitString); Session["MeasureMapUnits"] = m_mapUnits; string measureUnitString = queryString["MeasureUnits"]; if (measureUnitString != null && measureUnitString.Length > 0) m_measureUnits = (MeasureUnit)Enum.Parse(typeof(MeasureUnit),measureUnitString); string areaUnitstring = queryString["AreaUnits"]; if (areaUnitstring != null && areaUnitstring.Length > 0) m_areaUnits = (AreaUnit)Enum.Parse(typeof(AreaUnit),areaUnitstring); string response = ""; PointCollection points = new PointCollection(); PointCollection dPoints = new PointCollection(); ArrayList distances = new ArrayList(); double totalDistance = 0; double segmentDistance = 0; double area = 0; double perimeter = 0; double roundFactor = Math.Pow(10, m_numberDecimals); double xD, yD, tempDist, tempDist2, tempArea, x1, x2, y1, y2; TransformationParams transformationParameters = m_map.GetTransformationParams(TransformationDirection.ToMap); if (vectorAction == "addpoint") { if (coordPairs != null && coordPairs.Length > 1) { for (int i = 0; i < coordPairs.Length; i++) { xys = coordPairs[i].Split(char.Parse(":")); points.Add(Point.ToMapPoint(Convert.ToInt32(xys[0]), Convert.ToInt32(xys[1]), transformationParameters)); if (i > 0) { if (m_mapUnits == MapUnit.Degrees) { // use great circle formula tempDist = DegreeToFeetDistance(points[i - 1].X, points[i - 1].Y, points[i].X, points[i].Y); y1 = DegreeToFeetDistance(points[i].X, points[i].Y, points[i].X, 0); x1 = DegreeToFeetDistance(points[i].X, points[i].Y, 0, points[i].Y); dPoints.Add(new Point(x1, y1)); segmentDistance = ConvertUnits(tempDist, MapUnit.Feet, m_measureUnits); } else { // get third side of triangle for distance xD = Math.Abs(points[i].X - points[i - 1].X); yD = Math.Abs(points[i].Y - points[i - 1].Y); tempDist = Math.Sqrt(Math.Pow(xD, 2) + Math.Pow(yD, 2)); segmentDistance = ConvertUnits(tempDist, m_mapUnits, m_measureUnits); } distances.Add(segmentDistance); totalDistance += segmentDistance; segmentDistance = Math.Round(segmentDistance * roundFactor) / roundFactor; totalDistance = Math.Round(totalDistance * roundFactor) / roundFactor; } else { if (m_mapUnits == MapUnit.Degrees) { y1 = DegreeToFeetDistance(points[i].X, points[i].Y, points[i].X, 0); x1 = DegreeToFeetDistance(points[i].X, points[i].Y, 0, points[i].Y); dPoints.Add(new Point(x1, y1)); } } } } if (eventArg == "polygon") { if (points.Count > 2) { if (m_mapUnits == MapUnit.Degrees) { tempDist = DegreeToFeetDistance(points[points.Count - 1].X, points[points.Count - 1].Y, points[0].X, points[0].Y); tempDist2 = ConvertUnits(tempDist, MapUnit.Feet, m_measureUnits); distances.Add(tempDist2); dPoints.Add(dPoints[0]); } else { xD = Math.Abs(points[points.Count - 1].X - points[0].X); yD = Math.Abs(points[points.Count - 1].Y - points[0].Y); tempDist = Math.Sqrt(Math.Pow(xD, 2) + Math.Pow(yD, 2)); tempDist2 = ConvertUnits(tempDist, m_mapUnits, m_measureUnits); distances.Add(tempDist2); } points.Add(points[0]); perimeter = totalDistance + tempDist2; // add area calculation tempArea = 0; MapUnit mUnits = m_mapUnits; for (int j = 0; j < points.Count - 1; j++) { if (m_mapUnits == MapUnit.Degrees) { x1 = Convert.ToDouble(dPoints[j].X); x2 = Convert.ToDouble(dPoints[j + 1].X); y1 = Convert.ToDouble(dPoints[j].Y); y2 = Convert.ToDouble(dPoints[j + 1].Y); mUnits = MapUnit.Feet; } else { x1 = Convert.ToDouble(points[j].X); x2 = Convert.ToDouble(points[j + 1].X); y1 = Convert.ToDouble(points[j].Y); y2 = Convert.ToDouble(points[j + 1].Y); } //tempArea += tempArea + (x1 + x2) * (y1 - y2); double xDiff = x2 - x1; double yDiff = y2 - y1; tempArea += x1 * yDiff - y1 * xDiff; } tempArea = Math.Abs(tempArea) / 2; area = ConvertAreaUnits(tempArea, mUnits, m_areaUnits); perimeter = Math.Round(perimeter * roundFactor) / roundFactor; area = Math.Round(area * roundFactor) / roundFactor; response = String.Format("<table cellspacing='0' ><tr><td>Perimeter: </td><td align='right'>{0}</td><td>{1}</td></tr><tr><td>Area:</td><td align='right'>{2}</td><td>{3}</td></tr></table>", perimeter, WriteMeasureUnitDropdown(), area, WriteAreaUnitDropdown()); } else response = String.Format("<table cellspacing='0' ><tr><td>Perimeter: </td><td align='right'> 0</td><td>{0}</td></tr><tr><td>Area:</td><td align='right'>0 </td><td>{1}</td></tr></table>", WriteMeasureUnitDropdown(), WriteAreaUnitDropdown()); } else response = String.Format("<table cellspacing='0' ><tr><td>Segment: </td><td align='right'>{0} </td><td>{1}</td></tr><tr><td>Total Length:</td><td align='right'>{2} </td><td>{3}</td></tr></table>", segmentDistance, m_measureUnits.ToString(), totalDistance, WriteMeasureUnitDropdown()); } else if (vectorAction == "coordinates") { xys = coordPairs[0].Split(char.Parse(":")); Point coordPoint = Point.ToMapPoint(Convert.ToInt32(xys[0]), Convert.ToInt32(xys[1]), transformationParameters); response = String.Format("<table cellspacing='0' ><tr><td>X Coordinate:</td><td align='right'>{0}</td></tr><tr><td>Y Coordinate:</td><td align='right'>{1}</td></tr></table>", (Math.Round(coordPoint.X * roundFactor) / roundFactor).ToString(), (Math.Round(coordPoint.Y * roundFactor) / roundFactor).ToString()); } else if (vectorAction == "finish") { response = "Shape complete"; } return String.Format("measure:::{0}:::{1}:::{2}", m_id, vectorAction, response); }
/// <summary> /// Get unit abbreviation string. /// </summary> /// <param name="unit">Unit to get abbreviation for.</param> /// <returns>Unit abbreviation string.</returns> public static string GetAbbreviation(AreaUnit unit) { return(GetAbbreviation(unit, null)); }
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(); }
/// <summary> /// Get unit abbreviation string. /// </summary> /// <param name="unit">Unit to get abbreviation for.</param> /// <returns>Unit abbreviation string.</returns> /// <param name="cultureName">Name of culture (ex: "en-US") to use when parsing number and unit. Defaults to <see cref="GlobalConfiguration.DefaultCulture" /> if null.</param> public static string GetAbbreviation(AreaUnit unit, [CanBeNull] string cultureName) { IFormatProvider provider = GetFormatProviderFromCultureName(cultureName); return(UnitAbbreviationsCache.Default.GetDefaultAbbreviation(unit, provider)); }
public string ToString(AreaUnit unit, CultureInfo culture = null, int significantDigitsAfterRadix = 2) { return(ToString(unit, culture, UnitFormatter.GetFormat(As(unit), significantDigitsAfterRadix))); }
public static Area From(decimal value, AreaUnit fromUnit) { return(new Area((decimal)value, fromUnit)); }
public ConstructorForValueAndUnitTestData(decimal value, AreaUnit unit, decimal expectedSquareMetres) : base(new Area((number)value, unit), new Area((number)expectedSquareMetres)) { }
public static bool TryParseUnit(string str, out AreaUnit unit) { return(TryParseUnit(str, null, out unit)); }
private Area(FLT flt, double value, AreaUnit unit) : base(flt, value, unit) { }
/// <summary> /// Parse a unit string. /// </summary> /// <param name="str">String to parse. Typically in the form: {number} {unit}</param> /// <param name="unit">The parsed unit if successful.</param> /// <returns>True if successful, otherwise false.</returns> /// <example> /// Length.TryParseUnit("m", new CultureInfo("en-US")); /// </example> /// <param name="cultureName">Name of culture (ex: "en-US") to use when parsing number and unit. Defaults to <see cref="GlobalConfiguration.DefaultCulture" /> if null.</param> public static bool TryParseUnit(string str, [CanBeNull] string cultureName, out AreaUnit unit) { IFormatProvider provider = GetFormatProviderFromCultureName(cultureName); return(UnitParser.Default.TryParse <AreaUnit>(str, provider, out unit)); }
public void calcPackage(List <T_PACKAGE_TASK> task, List <PackageArea> list) { var unnormaltask = task.Where(x => x.CIGTYPE == "2").ToList(); var normaltask = task.Where(x => x.CIGTYPE == "1").ToList(); decimal startpackagenum = allpackagenum; int packageNO = 1; //var templist = task.Where(x => x.STATE != 10).ToList().Take(taskCount).ToList(); var templist = unnormaltask.Where(x => x.STATE == 0).ToList().Take(taskCount).ToList(); if (templist != null && templist.Count > 0) { while (templist.Where(x => x.STATE == 10) != null && templist.Where(x => x.STATE != 10).Count() > 0) { // templist = templist.Where(x => x.STATE != 10).ToList(); decimal minHeight = 0; if (list.Where(x => x.isscan == 0 && x.width > minWidth) != null && list.Where(x => x.isscan == 0 && x.width > minWidth).Count() > 0) { minHeight = list.Where(x => x.isscan == 0 && x.width > minWidth).Min(x => x.height); } else { decimal sciseq = templist.Where(x => x.STATE != 10).Min(x => x.CIGSEQ) ?? 0; List <T_PACKAGE_TASK> bigList = templist.Where(x => x.STATE == 10 && x.CIGSEQ > sciseq).OrderBy(x => x.CIGSEQ).ToList();//有大于当前序号已排好的烟 if (bigList != null && bigList.Count > 0) { // bigList = templist.Where(x => x.STATE == 10).OrderBy(x => x.CIGSEQ).ToList(); //list.Clear(); list = RollBackList(list, bigList); list.ForEach(x => x.isscan = 0); templist.ForEach(x => { x.PACKAGESEQ = 0; x.STATE = 0; x.DOUBLETAKE = "0"; }); templist = templist.Where(x => x.CIGSEQ <= sciseq).ToList(); minHeight = list.Where(x => x.isscan == 0 && x.width > minWidth).Min(x => x.height); //List<PackageArea> list1 = new List<PackageArea>(list); //diclist.Push(list1); } else { NormalCig(task, normaltask, 1); packageNO += 1; allpackagenum += 1; list.Clear(); diclist.Clear(); PackageArea areainit = new PackageArea(); areainit.width = packageWidth; areainit.height = 0; areainit.cigaretteList = new List <Cigarette>() { new Cigarette() { CigaretteNo = 0, fromx = 0, tox = packageWidth, width = packageWidth } }; list.Add(areainit); diclist.Push(CopyList(list)); } } PackageArea area = list.Find(x => x.height == minHeight && x.isscan == 0 && x.width > minWidth); area = list.FindAll(x => x.beginx == area.beginx && x.isscan == 0 && x.width > minWidth).OrderByDescending(x => x.height).FirstOrDefault(); //是否有相同品牌的烟 List <ItemGroup> allGroupList = templist.Where(x => x.STATE != 10).GroupBy(x => x.CIGARETTECODE).Select(x => new ItemGroup() { CigaretteCode = x.Key, Total = x.Count() }).ToList(); List <ItemGroup> groupList = allGroupList.FindAll(x => x.Total > 1); foreach (var item in groupList) { var doubleList = templist.Where(x => x.STATE != 10 && x.CIGARETTECODE == item.CigaretteCode).Take(2).ToList(); if (Math.Abs((doubleList[0].CIGSEQ ?? 0) - (doubleList[1].CIGSEQ ?? 0)) != 1) { item.Total = 100; } } groupList.RemoveAll(x => x.Total == 100); // List<ItemGroup> smallGroupList = allGroupList; String tempcode = ""; decimal tempWidth = 0; decimal gdc = 0;//高度差 List <AreaUnit> unit = new List <AreaUnit>(); AreaUnit tempunit = null; if (groupList != null && groupList.Count > 0)//优先双抓 而且是宽度大的双抓 { // List<Cigarette> cigList = area.cigaretteList; foreach (var v in groupList) { unit.Clear(); T_PACKAGE_TASK temptask = templist.Find(x => x.CIGARETTECODE == v.CigaretteCode); decimal cgiseq = templist.Where(x => x.CIGARETTECODE == v.CigaretteCode && x.STATE != 10).FirstOrDefault().CIGSEQ ?? 0; if ((temptask.CIGWIDTH + jx) * 2 <= area.width && area.height + temptask.CIGHIGH < packageHeight)//小于区域宽度,同时小于整包高度 { int i = 0; decimal flag = 1; decimal lastflag = 0; decimal beginx = 0; foreach (var item in area.cigaretteList) { item.index = i; if (cgiseq < item.CigaretteNo) { flag = 0; } else { flag = 1; } if (lastflag == 1 && flag == 1) { AreaUnit u = unit.ElementAt(unit.Count - 1); u.width += item.width; u.end = i; } else if (lastflag == 0 && flag == 1) { AreaUnit cell = new AreaUnit(); cell.width = item.width; cell.begin = i; cell.end = i; cell.beginx = beginx; unit.Add(cell); } lastflag = flag; beginx += item.width; i++; } foreach (var cell in unit) { if ((temptask.CIGWIDTH + jx) * 2 <= cell.width) //后面的seq必须大于已放的才能放 { if (tempWidth <= temptask.CIGWIDTH) { if (tempWidth == temptask.CIGWIDTH) { if (area.left != null) { //看左边高度差 取相差小的 if (Math.Abs(area.height + (temptask.CIGHIGH ?? 0) - area.left.height) - Math.Abs(gdc) < 0) { tempWidth = temptask.CIGWIDTH ?? 0; tempcode = v.CigaretteCode; gdc = area.height + (temptask.CIGHIGH ?? 0) - area.left.height; } } } else { tempWidth = temptask.CIGWIDTH ?? 0; tempcode = v.CigaretteCode; if (area.left != null) { gdc = area.height + (temptask.CIGHIGH ?? 0) - area.left.height; } } } tempunit = cell; break; } } } } } if (tempcode != "" && tempunit != null) { var chooseItem = templist.FindAll(x => x.CIGARETTECODE == tempcode && x.STATE != 10).OrderBy(x => x.CIGSEQ).Take(2).ToList(); decimal width = 0; decimal height = 0; decimal cigseq = 0; foreach (var v in chooseItem) { v.PACKAGESEQ = packageNO; v.CIGWIDTHX = area.beginx + tempunit.beginx + v.CIGWIDTH + jx;//两条当做一条 v.CIGHIGHY = area.height + v.CIGHIGH; v.STATE = 10; v.DOUBLETAKE = "1"; v.ALLPACKAGESEQ = allpackagenum; width += (v.CIGWIDTH ?? 0) + jx; height = area.height + (v.CIGHIGH ?? 0); cigseq = v.CIGSEQ ?? 0; } //更新area if (tempunit.begin == 0) { calcArea(list, area, width, height, cigseq); } else { calcArea(list, area, width, height, cigseq, tempunit); } diclist.Push(CopyList(list)); } else { tempWidth = 0; gdc = 0;//高度差 unit.Clear(); foreach (var v in allGroupList) { T_PACKAGE_TASK temptask = templist.Find(x => x.CIGARETTECODE == v.CigaretteCode && x.STATE != 10); int i = 0; unit.Clear(); decimal flag = 1; decimal lastflag = 0; decimal beginx = 0; foreach (var item in area.cigaretteList) { item.index = i; if (temptask.CIGSEQ < item.CigaretteNo) { flag = 0; } else { flag = 1; } if (lastflag == 1 && flag == 1) { AreaUnit u = unit.ElementAt(unit.Count - 1); u.width += item.width; u.end = i; } else if (lastflag == 0 && flag == 1) { AreaUnit cell = new AreaUnit(); cell.width = item.width; cell.begin = i; cell.end = i; cell.beginx = beginx; unit.Add(cell); } lastflag = flag; beginx += item.width; i++; } if (temptask.CIGWIDTH + jx * 2 <= area.width && area.height + temptask.CIGHIGH < packageHeight) { foreach (var cell in unit) { if (temptask.CIGWIDTH + jx * 2 <= cell.width) //后面的seq必须大于已放的才能放 { if (tempWidth <= temptask.CIGWIDTH + jx * 2) { if (tempWidth == temptask.CIGWIDTH + jx * 2) { if (area.left != null) { //看左边高度差 取相差小的 if (Math.Abs(area.height + (temptask.CIGHIGH ?? 0) - area.left.height) - Math.Abs(gdc) < 0) { tempWidth = (temptask.CIGWIDTH ?? 0) + jx * 2; tempcode = v.CigaretteCode; gdc = area.height + (temptask.CIGHIGH ?? 0) - area.left.height; } } } else { tempWidth = (temptask.CIGWIDTH ?? 0) + jx * 2; tempcode = v.CigaretteCode; if (area.left != null) { gdc = area.height + (temptask.CIGHIGH ?? 0) - area.left.height; } } } tempunit = cell; break; } } } } if (tempcode != "" && tempunit != null) { var chooseItem = templist.FindAll(x => x.CIGARETTECODE == tempcode && x.STATE != 10).OrderBy(x => x.CIGSEQ).FirstOrDefault(); decimal width = 0; decimal height = 0; decimal cigseq = 0; chooseItem.PACKAGESEQ = packageNO; chooseItem.CIGWIDTHX = area.beginx + tempunit.beginx + chooseItem.CIGWIDTH / 2 + jx; chooseItem.CIGHIGHY = area.height + chooseItem.CIGHIGH; chooseItem.STATE = 10; chooseItem.ALLPACKAGESEQ = allpackagenum; width += (chooseItem.CIGWIDTH ?? 0) + jx * 2; height = area.height + (chooseItem.CIGHIGH ?? 0); cigseq = chooseItem.CIGSEQ ?? 0; //更新area //更新area if (tempunit.begin == 0) { calcArea(list, area, width, height, cigseq); } else { calcArea(list, area, width, height, cigseq, tempunit); } diclist.Push(CopyList(list)); } else { area.isscan = 1; } } if (templist.Where(x => x.STATE != 10) == null || templist.Where(x => x.STATE != 10).Count() == 0) { list.ForEach(x => x.isscan = 0); templist = task.Where(x => x.STATE != 10).ToList().Take(taskCount).ToList(); } } } }
public Plan() { this.angleUnitsField = DirectionUnit.Degree; this.areaUnitsField = AreaUnit.Squaremeter; this.distanceUnitsField = DistanceUnit.Meter; this.directionFormatField = DirectionFormat.northazimuth; this.lineParametersField = CadastralLineParameter.bearingAndDistance; this.distanceAtGroundField = true; this.combinedGridFactorField = 1; this.trueMidBearingField = false; this.accuracyField = 0; this.oIDField = 0; this.internalAnglesField = false; }
private AreaUnit CreateUnitOtherThan(params AreaUnit[] unitsToExclude) => Fixture.CreateFromSet(AreaUnit.GetPredefinedUnits().Except(unitsToExclude));
/// <summary> /// Get string representation of value and unit. Using current UI culture and two significant digits after radix. /// </summary> /// <param name="unit">Unit representation to use.</param> /// <returns>String representation.</returns> public string ToString(AreaUnit unit) { return(ToString(unit, null, 2)); }
/// <summary> /// Converts this Area to another Area with the unit representation <paramref name="unit" />. /// </summary> /// <returns>A Area with the specified unit.</returns> public Area ToUnit(AreaUnit unit) { var convertedValue = AsBaseNumericType(unit); return(new Area(convertedValue, unit)); }
public static double ConvertTo(this double metres, AreaUnit unit) { return metres / unit.GetConversionFactor(); }
public void Parse_ReturnsUnitMappedByCustomAbbreviation(string customAbbreviation, AreaUnit expected) { UnitSystem unitSystem = UnitSystem.Default; unitSystem.MapUnitToAbbreviation(expected, customAbbreviation); var actual = unitSystem.Parse <AreaUnit>(customAbbreviation); Assert.Equal(expected, actual); }
protected static string CreateSuffix(SymbolFormat format, AreaUnit unit) { return default(Area).ToString(unit, format).Trim('0'); }