View Source Landmark.Helpers (Landmark v0.5.1)

Summary

Functions

Convert a length from from unit to to

Get the coordinates from a GeoJSON object.

Convert a length measurement in the given unit to radians (assuming a spherical earth).

Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.

Types

length_unit()

@type length_unit() :: :radians | :meters | :metres | :kilometers | :kilometres

Functions

convert_length(length, from, to)

@spec convert_length(number(), length_unit(), length_unit()) :: number()

Convert a length from from unit to to

Examples

iex> Landmark.Helpers.convert_length(4500, :meters, :kilometers)
4.5

iex> Landmark.Helpers.convert_length(4500, :kilometers, :radians)
0.7063246506675239

iex> Landmark.Helpers.convert_length(35, :meters, :meters)
35

coords(geojson)

Get the coordinates from a GeoJSON object.

Examples

iex> Landmark.Helpers.coords(%Geo.Point{coordinates: {1, 2}})
[{1, 2}]
iex> Landmark.Helpers.coords(%Geo.MultiPoint{coordinates: [{1, 2}, {3, 4}]})
[{1, 2}, {3, 4}]
iex> Landmark.Helpers.coords(%Geo.Polygon{coordinates: [[{1, 2}, {3, 4}, {5, 6}], [{7, 8}, {9, 10}]]})
[{1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}]

earth_radius_in_meters()

@spec earth_radius_in_meters() :: float()

length_to_radians(length, unit)

@spec length_to_radians(number(), length_unit()) :: number()

Convert a length measurement in the given unit to radians (assuming a spherical earth).

Examples

iex> Landmark.Helpers.length_to_radians(1000, :kilometers)
0.15696103348167198

radians_to_length(radians, unit)

@spec radians_to_length(number(), length_unit()) :: number()

Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.

Examples

iex> Landmark.Helpers.radians_to_length(1, :kilometers)
6371.008