Packages
geo
0.8.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.ex
defmodule Geo do
defmodule Geometry do
defstruct type: :geometry, coordinates: [], srid: nil
end
defimpl String.Chars, for: Geo.Geometry do
def to_string(geo) do
Geo.WKT.encode(geo)
end
end
def contains(%{ type: :point, coordinates: coordinates1}, %{ type: :point, coordinates: coordinates2}) do
is_pair_equal?(coordinates1, coordinates2)
end
def contains(%{ type: :line_string, coordinates: coordinates1}, %{ type: :point, coordinates: coordinates2}) do
Enum.find(coordinates1, fn(x) -> is_pair_equal?(x, coordinates2) end) != nil
end
defp is_pair_equal?(p1, p2) do
List.first(p1) == List.first(p2) && List.last(p1) == List.last(p2)
end
end