Packages
geo
3.4.2
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
@moduledoc """
A collection of GIS functions.
"""
@type geometry ::
Geo.Point.t()
| Geo.PointZ.t()
| Geo.PointM.t()
| Geo.PointZM.t()
| Geo.LineString.t()
| Geo.LineStringZ.t()
| Geo.Polygon.t()
| Geo.PolygonZ.t()
| Geo.MultiPoint.t()
| Geo.MultiPointZ.t()
| Geo.MultiLineString.t()
| Geo.MultiLineStringZ.t()
| Geo.MultiPolygon.t()
| Geo.MultiPolygonZ.t()
| Geo.GeometryCollection.t()
@typedoc """
Endianess (byte-order) of the WKB/EWKB representation.
* `:ndr` - little-endian
* `:xdr` - big-endian
"""
@type endian :: :ndr | :xdr
if Application.get_env(:geo, :impl_to_string, true) do
defimpl String.Chars,
for: [
Geo.Point,
Geo.PointZ,
Geo.PointM,
Geo.PointZM,
Geo.LineString,
Geo.LineStringZ,
Geo.Polygon,
Geo.PolygonZ,
Geo.MultiPoint,
Geo.MultiPointZ,
Geo.MultiLineString,
Geo.MultiLineStringZ,
Geo.MultiPolygon,
Geo.MultiPolygonZ,
Geo.GeometryCollection
] do
def to_string(geo) do
Geo.WKT.encode!(geo)
end
end
end
if Code.ensure_loaded?(Jason.Encoder) do
defimpl Jason.Encoder,
for: [
Geo.Point,
Geo.PointZ,
Geo.PointM,
Geo.PointZM,
Geo.LineString,
Geo.LineStringZ,
Geo.Polygon,
Geo.PolygonZ,
Geo.MultiPoint,
Geo.MultiPointZ,
Geo.MultiLineString,
Geo.MultiLineStringZ,
Geo.MultiPolygon,
Geo.MultiPolygonZ,
Geo.GeometryCollection
] do
def encode(value, opts) do
Jason.Encode.map(Geo.JSON.encode!(value), opts)
end
end
end
end