Re: Find nearest geographic coordinates
"Richard O'Keefe" <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CABcYAdLp11ottKSVN1DG6tc+tUszdaj9herBQiWWFvAE6VT0zA@mail.gmail.com> |
It might be worth mentioning the "Standards Of Fundamental Astronomy" (SOFA) library: https://www.iausofa.org/current_C.html On Sun, 29 Nov 2020 at 08:10, Joa Gre <[email protected]> wrote: > This might come in handy: > > %% https://en.m.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates > %% https://en.m.wikipedia.org/wiki/Geodetic_datum#World_Geodetic_System_1984_(WGS_84) > > geodetic_to_ecef_coordinates(Latitude, Longitude, H) -> > CLatitude = math:cos(Latitude * ?RADIANS_PER_DEGREE), > SLatitude = math:sin(Latitude * ?RADIANS_PER_DEGREE), > CLongitude = math:cos(Longitude * ?RADIANS_PER_DEGREE), > SLongitude = math:sin(Longitude * ?RADIANS_PER_DEGREE), > %% Semi-major axis > A = 6378137.0, > A2 = math:pow(A, 2), > %% Semi-minor axis > B = 6356752.3142, > B2 = math:pow(B, 2), > %% Prime vertical radius of curvature > N = A2 / math:sqrt( > math:pow(CLatitude, 2) * A2 + math:pow(SLatitude, 2) * B2), > X = (N + H) * CLatitude * CLongitude, > Y = (N + H) * CLatitude * SLongitude, > Z = (B2 / A2 * N + H) * SLatitude, > {X, Y, Z}. > > > Den ons 25 nov. 2020 22:39Frank Muller <[email protected]> skrev: > >> Hi guys, >> >> I've a list of geographic coordinates: >> >> L = [ {{<<"longitude">>,6.1457}, {<<"latitude">>,46.2022}}, >> {{<<"longitude">>,2.3387}, {<<"latitude">>,48.8582}}, >> ... ] >> >> and a specific coordinate X = {{<<"longitude">>,-73.5848}, >> {<<"latitude">>,45.4995}}. >> >> Question: how can i find the nearest coordinates to X from L (sorted from >> the nearest to the farest)? >> >> /Frank >> >