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