From 0d398031fdc615cb98ece2644478219434126a72 Mon Sep 17 00:00:00 2001 From: Ieuan Walker Date: Wed, 18 Feb 2026 13:01:43 +0000 Subject: [PATCH] Add FromLatitudeLongitude to EastingNorthing class Introduced a static method to create EastingNorthing objects from latitude and longitude by converting WGS84 coordinates to OSGB36 and projecting to British National Grid. Added necessary using directives for GeoUK.Ellipsoids and GeoUK.Projections. --- GeoUK/Coordinates/EastingNorthing.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/GeoUK/Coordinates/EastingNorthing.cs b/GeoUK/Coordinates/EastingNorthing.cs index e229b7c..4eefbef 100644 --- a/GeoUK/Coordinates/EastingNorthing.cs +++ b/GeoUK/Coordinates/EastingNorthing.cs @@ -1,3 +1,6 @@ +using GeoUK.Ellipsoids; +using GeoUK.Projections; + namespace GeoUK.Coordinates { /// @@ -62,5 +65,19 @@ public double DistanceTo(EastingNorthing toEastingNorthing) double deltaHeight = toEastingNorthing.Height - Height; return System.Math.Sqrt(horizontal * horizontal + deltaHeight * deltaHeight); } + + /// + /// Creates a object from latitude and longitude coordinates. + /// + /// + /// + /// + public static EastingNorthing FromLatitudeLongitude(double latitude, double longitude) + { + Cartesian cartesian = Convert.ToCartesian(new Wgs84(), new LatitudeLongitude(latitude, longitude)); + Cartesian bngCartesian = Transform.Etrs89ToOsgb36(cartesian); + + return Convert.ToEastingNorthing(new Airy1830(), new BritishNationalGrid(), bngCartesian); + } } } \ No newline at end of file