View Source LibLatLon.Info (LibLatLon v0.6.1)

Main storage struct for holding information about any place/POI/address in the unified form.

example

Example:

LibLatLon.lookup {41.38777777777778, 2.197222222222222}

%LibLatLon.Info{
  address: "Avinguda del Litoral, [...] España",
  bounds: %LibLatLon.Bounds{
    from: #Coord<[
      lat: 41.3876663,
      lon: 2.196602,
      fancy: "41°23´15.59868˝N,2°11´47.7672˝E"
    ]>,
    to: #Coord<[
      lat: 41.3917431,
      lon: 2.2031084,
      fancy: "41°23´30.27516˝N,2°12´11.19024˝E"
    ]>
  },
  coords: #Coord<[
    lat: 41.3899932,
    lon: 2.2000054,
    fancy: "41°23´23.97552˝N,2°12´0.01944˝E"
  ]>,
  details: %{
    city: "Barcelona",
    city_district: "Sant Martí",
    country: "España",
    country_code: "es",
    county: "BCN",
    postcode: "08020",
    road: "Avinguda del Litoral",
    state: "CAT",
    suburb: "la Vila Olímpica del Poblenou"
  },
  meta: %{
    licence: "Data © OpenStreetMap [...]",
    osm_id: "47123759",
    osm_type: "way",
    place_id: "82181109"
  }
}

Link to this section Summary

Types

t()

Main type to store geo point in unified form.

Functions

Formats the String.t representation of this struct according to the format given.

The same as LibLatLon.Info.from_map/1, but banged.

Mostly internal helper. You would unlikely call this function yourself.

Link to this section Types

@type t() :: %LibLatLon.Info{
  address: binary(),
  bounds: LibLatLon.Bounds.t(),
  coords: LibLatLon.Coords.t(),
  details: map(),
  meta: map()
}

Main type to store geo point in unified form.

  • LibLatLon.Bounds.t for bounds field
  • LibLatLon.Coords.t for coords key

address is a string, representing the whole address in human-readable form.

details and meta are not unified maps of fields, as returned by geo location provider. Their keys differ for different providers.

Link to this section Functions

@spec format(t(), binary()) :: binary()

Formats the String.t representation of this struct according to the format given.

Second parameter format might include %{field} inclusions which will be interpolated in the result with real values.

examples

Examples

iex> info = LibLatLon.lookup({42, 3.14159265}, LibLatLon.Providers.Dummy)
iex> LibLatLon.Info.format(info, "⚑ %{country}, %{city}, %{postcode}.")
"⚑ España, Barcelona, 08021."
@spec from_map!(map() | list()) :: t() | no_return()

The same as LibLatLon.Info.from_map/1, but banged.

@spec from_map(map() | list()) :: {:ok, t()} | {:error, atom()}

Mostly internal helper. You would unlikely call this function yourself.

Gets the map as returned by geo location provider and contructs fields in unified format.