Packages
geo
1.0.1
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/geometry_collection.ex
defmodule Geo.GeometryCollection do
@moduledoc """
Defines the GeometryCollection struct. Implements the Ecto.Type behaviour
"""
@type t :: %Geo.GeometryCollection{ geometries: [Geo.geometry], srid: integer }
defstruct geometries: [], srid: nil
if Code.ensure_loaded?(Ecto.Type) do
@behaviour Ecto.Type
def type, do: :geometry
def blank?(_), do: false
def load(%Geo.GeometryCollection{} = geometry_collection), do: {:ok, geometry_collection}
def load(_), do: :error
def dump(%Geo.GeometryCollection{} = geometry_collection), do: {:ok, geometry_collection}
def dump(_), do: :error
def cast(%Geo.GeometryCollection{} = geometry_collection), do: {:ok, geometry_collection}
def cast(geometry_collection) when is_map(geometry_collection), do: { :ok, Geo.JSON.decode(geometry_collection) }
if Code.ensure_loaded?(Poison) do
def cast(geometry_collection) when is_binary(geometry_collection), do: { :ok, Poison.decode!(geometry_collection) |> Geo.JSON.decode }
end
def cast(_), do: :error
end
end