Packages
geo
2.0.0
4.1.0
4.0.1
4.0.0
3.6.0
3.5.1
3.5.0
3.4.3
3.4.2
3.4.1
3.4.0
3.3.8
3.3.7
3.3.5
3.3.4
3.3.3
3.3.2
3.3.1
3.3.0
3.2.0
3.1.0
3.0.0
2.1.0
2.0.0
1.5.0
1.4.1
1.4.0
1.3.1
1.3.0
1.2.1
1.2.0
1.1.2
1.1.1
1.1.0
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.18.0
0.17.0
0.16.1
0.16.0
0.15.2
0.15.1
0.15.0
0.14.0
0.13.0
0.12.0
0.11.2
0.11.1
0.11.0
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.0
0.7.2
0.7.1
0.6.1
0.5.1
Encodes and decodes WKB, WKT, and GeoJSON formats.
Current section
Files
Jump to
Current section
Files
lib/geo/multi_line_string.ex
defmodule Geo.MultiLineString do
@moduledoc """
Defines the MultiLineString struct. Implements the Ecto.Type behaviour
"""
@type t :: %Geo.MultiLineString{ coordinates: [[{number, number}]], srid: integer }
defstruct coordinates: [], srid: nil
if Code.ensure_loaded?(Ecto.Type) do
@behaviour Ecto.Type
def type, do: :geometry
def blank?(_), do: false
def load(%Geo.MultiLineString{} = multi_line_string), do: {:ok, multi_line_string}
def load(_), do: :error
def dump(%Geo.MultiLineString{} = multi_line_string), do: {:ok, multi_line_string}
def dump(_), do: :error
def cast(%Geo.MultiLineString{} = multi_line_string), do: {:ok, multi_line_string}
def cast(%{"type" => _, "coordinates" => _} = multi_line_string), do: { :ok, Geo.JSON.decode(multi_line_string) }
if Code.ensure_loaded?(Poison) do
def cast(multi_line_string) when is_binary(multi_line_string), do: { :ok, Poison.decode!(multi_line_string) |> Geo.JSON.decode }
end
def cast(_), do: :error
end
end