View Source Geo.JSON (Geo v4.0.1)
Converts Geo structs to and from a map representing GeoJSON.
You are responsible to encoding and decoding of JSON. This is so that you can use any JSON parser you want as well as making it so that you can use the resulting GeoJSON structure as a property in larger JSON structures.
Note that, per the GeoJSON spec, all geometries are assumed to use the WGS 84 datum (SRID 4326) by default.
Examples
# Using Jason as the JSON parser for these examples
iex> json = "{ \"type\": \"Point\", \"coordinates\": [100.0, 0.0] }"
...> json |> Jason.decode!() |> Geo.JSON.decode!()
%Geo.Point{coordinates: {100.0, 0.0}, srid: 4326}
iex> geom = %Geo.Point{coordinates: {100.0, 0.0}, srid: nil}
...> Jason.encode!(geom)
"{\"coordinates\":[100.0,0.0],\"type\":\"Point\"}"
iex> geom = %Geo.Point{coordinates: {100.0, 0.0}, srid: nil}
...> Geo.JSON.encode!(geom)
%{"type" => "Point", "coordinates" => [100.0, 0.0]}
Summary
Functions
Takes a map representing GeoJSON and returns a Geometry.
Takes a map representing GeoJSON and returns a Geometry.
Takes a Geometry and returns a map representing the GeoJSON.
See Geo.JSON.Encoder.encode/2
.
Takes a Geometry and returns a map representing the GeoJSON.
See Geo.JSON.Encoder.encode!/2
.
Functions
@spec decode(map()) :: {:ok, Geo.geometry()} | {:error, Geo.JSON.Decoder.DecodeError.t()}
Takes a map representing GeoJSON and returns a Geometry.
@spec decode!(map()) :: Geo.geometry()
Takes a map representing GeoJSON and returns a Geometry.
@spec encode(Geo.geometry()) :: {:ok, map()} | {:error, Geo.JSON.Encoder.EncodeError.t()}
Takes a Geometry and returns a map representing the GeoJSON.
See Geo.JSON.Encoder.encode/2
.
@spec encode!(Geo.geometry()) :: map()
Takes a Geometry and returns a map representing the GeoJSON.
See Geo.JSON.Encoder.encode!/2
.