-
-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: spherical law of cosines & equirectangular approximation (#35) * Updated README * Update LICENSE * docs: CODE_OF_CONDUCT * chore: dart format * docs: revise README.md * CODE & FEATURES * Little Changes * EquirectangularApproximation * Spherical Law of Cosines * GeodeticPointManipulation * MidpointBetweenTwoPoints * PointAlongGreatCircle * DONE * refactor: remove unwanted comments * refactor: format * fix: The line length exceeds the 80-character limit * Vincenty DOC --------- Co-authored-by: wingkwong <[email protected]> * docs: format code * docs: add 0.9.0 CHANGELOG * chore: bump to 0.9.0 --------- Co-authored-by: Ayoub Ali <[email protected]>
- Loading branch information
1 parent
6af10d5
commit 9bf0a10
Showing
19 changed files
with
480 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
25 changes: 25 additions & 0 deletions
25
lib/src/core/DistanceCalculations/equirectangular_distance.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
import '../core.dart'; | ||
|
||
/// Equirectangular approximation Calculation | ||
class EquirectangularApproximation { | ||
/// EquirectangularDistance function takes two LatLng objects representing the | ||
/// latitude and longitude coordinates of two points. It calculates the | ||
/// distance between the points using the Equirectangular | ||
/// approximation formula and the Earth's radius. | ||
static double equirectangularDistance(LatLng point1, LatLng point2) { | ||
final double radius = 6371.0; // Earth's radius in kilometers | ||
|
||
double lat1 = point1.latitude; | ||
double lon1 = point1.longitude; | ||
double lat2 = point2.latitude; | ||
double lon2 = point2.longitude; | ||
|
||
double x = (lon2 - lon1) * (radius * cos((lat1 + lat2) / 2)); | ||
double y = (lat2 - lat1) * radius; | ||
|
||
// Calculate distance using Pythagorean theorem | ||
double distance = sqrt(x * x + y * y); | ||
|
||
return distance; | ||
} | ||
} |
4 changes: 2 additions & 2 deletions
4
lib/src/core/geo_points.dart → ...core/DistanceCalculations/geo_points.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
25 changes: 25 additions & 0 deletions
25
lib/src/core/DistanceCalculations/spherical_law_of_cosines_distance.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
import '../core.dart'; | ||
|
||
/// Calculate Spherical Law Of Cosines Distance | ||
class SphericalLawOfCosines { | ||
/// This function takes two LatLng objects representing the latitude and | ||
/// longitude coordinates of two points. It calculates the distance | ||
/// between the points using the Spherical Law of Cosines formula | ||
/// and the Earth's radius. | ||
static double sphericalLawOfCosinesDistance(LatLng point1, LatLng point2) { | ||
final double radius = 6371.0; // Earth's radius in kilometers | ||
|
||
double lat1 = (point1.latitude).toRadians(); | ||
double lon1 = (point1.longitude).toRadians(); | ||
double lat2 = (point2.latitude).toRadians(); | ||
double lon2 = (point2.longitude).toRadians(); | ||
|
||
double deltaLon = lon2 - lon1; | ||
|
||
double distance = | ||
acos(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(deltaLon)) * | ||
radius; | ||
|
||
return distance; | ||
} | ||
} |
Oops, something went wrong.