Find nearest geographic coordinates
Joa Gre
joagre@REDACTED
Sat Nov 28 20:09:55 CET 2020
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 <frank.muller.erl@REDACTED> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20201128/d04396d1/attachment.htm>
More information about the erlang-questions
mailing list