Skip to content

Commit 384f04b

Browse files
authored
Merge pull request #44 from wingkwong/develop
Release: 0.10.2
2 parents 6bf1cd4 + 6fab6dc commit 384f04b

File tree

4 files changed

+132
-4
lines changed

4 files changed

+132
-4
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# CHANGELOG
22

3+
## 0.10.2
4+
5+
- Fixed Shoelace formula
6+
- Added Unit Conversion
7+
38
## 0.10.1
49

510
- Added Example README.md

lib/src/core/GeodesicMeasurements/polygon_area_by_points.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ class PolygonArea {
2525
final LatLng currentPoint = polygonPoints[i];
2626
final LatLng nextPoint = polygonPoints[(i + 1) % polygonPoints.length];
2727

28-
area += (currentPoint.latitude + nextPoint.latitude) *
29-
(currentPoint.longitude - nextPoint.longitude);
28+
area += (currentPoint.latitude * nextPoint.longitude -
29+
nextPoint.latitude * currentPoint.longitude);
3030
}
3131

3232
area = area.abs() / 2.0;

lib/src/util/unit_conversion.dart

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
/// Unit Distance Conversion
2+
extension UnitConversions on num {
3+
/// Metric Units
4+
double get millimetersToMeters => this / 1000.0;
5+
6+
/// Meter To Millimeters
7+
double get metersToMillimeters => this * 1000.0;
8+
9+
/// Centimeter to Meters
10+
double get centimetersToMeters => this / 100.0;
11+
12+
/// Metres to Centimeters
13+
double get metersToCentimeters => this * 100.0;
14+
15+
/// Decimeters to Meters
16+
double get decimetersToMeters => this / 10.0;
17+
18+
/// Meters to Decimeters
19+
double get metersToDecimeters => this * 10.0;
20+
21+
/// Kilometers to Meters
22+
double get kilometersToMeters => this * 1000.0;
23+
24+
/// Meters to Kilometers
25+
double get metersToKilometers => this / 1000.0;
26+
27+
/// Imperial Units
28+
29+
/// Inches to Centimeters
30+
double get inchesToCentimeters => this * 2.54;
31+
32+
/// Centimeters to Inches
33+
double get centimetersToInches => this / 2.54;
34+
35+
/// Feet to Meters
36+
double get feetToMeters => this * 0.3048;
37+
38+
/// Meters to Feet
39+
double get metersToFeet => this / 0.3048;
40+
41+
/// Yards to Meters
42+
double get yardsToMeters => this * 0.9144;
43+
44+
/// Meters to Yards
45+
double get metersToYards => this / 0.9144;
46+
47+
/// Miles to KiloMeters
48+
double get milesToKilometers => this * 1.60934;
49+
50+
/// KiloMeters to Miles
51+
double get kilometersToMiles => this / 1.60934;
52+
53+
/// Nautical Units
54+
55+
/// Nautical Miles to Kilometers
56+
double get nauticalMilesToKilometers => this * 1.852;
57+
58+
/// Kilometers to Nautical Miles
59+
double get kilometersToNauticalMiles => this / 1.852;
60+
61+
/// Astronomical Units
62+
63+
/// Astronomical to Meters
64+
double get astronomicalUnitsToMeters => this * 149597870700.0;
65+
66+
/// Meters to Astronomical
67+
double get metersToAstronomicalUnits => this / 149597870700.0;
68+
69+
/// Light Years
70+
71+
/// Light Years to Meters
72+
double get lightYearsToMeters => this * 9.461e15;
73+
74+
/// Meters to Light Years
75+
double get metersToLightYears => this / 9.461e15;
76+
77+
/// Parsecs
78+
79+
/// Parsecs To Meters
80+
double get parsecsToMeters => this * 3.086e16;
81+
82+
/// Meters to Parsecs
83+
double get metersToParsecs => this / 3.086e16;
84+
85+
/// Micrometers To Meters
86+
double get micrometersToMeters => this / 1e6;
87+
88+
/// Meters To Micrometers
89+
double get metersToMicrometers => this * 1e6;
90+
91+
/// NanoMeters To Meters
92+
double get nanometersToMeters => this / 1e9;
93+
94+
/// Meters To Nanometers
95+
double get metersToNanometers => this * 1e9;
96+
97+
/// Picometers To Meters
98+
double get picometersToMeters => this / 1e12;
99+
100+
///Meters to PicoMeters
101+
double get metersToPicometers => this * 1e12;
102+
103+
/// Femtometers To Meters
104+
double get femtometersToMeters => this / 1e15;
105+
106+
/// Meters To FemtoMeters
107+
double get metersToFemtometers => this * 1e15;
108+
109+
/// Attometers To Meters
110+
double get attometersToMeters => this / 1e18;
111+
112+
/// Meters To Attometers
113+
double get metersToAttometers => this * 1e18;
114+
115+
/// Square Meters to Square Kilometers
116+
double get squareMetersToSquareKilometers => this / 1e6;
117+
118+
/// Square KiloMeters to Square Meters
119+
double get squareKilometersToSquareMeters => this * 1e6;
120+
121+
/// Meters To Square Kilometers
122+
double get metersToSquareKilometers => this * this / 1e6;
123+
}

pubspec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: geodesy
22
description: A Dart library for geodesic and trigonometric calculations working with points and paths
3-
version: 0.10.1
3+
version: 0.10.2
44
homepage: https://github.com/wingkwong/geodesy
55

66
environment:
@@ -10,5 +10,5 @@ dependencies:
1010
latlong2: ^0.9.0
1111

1212
dev_dependencies:
13-
lints: ^2.1.1
13+
lints: ^3.0.0
1414
test: ^1.16.8

0 commit comments

Comments
 (0)