Packages
geo
0.6.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
README.md
# Geo
A collection of GIS functions. Handles conversions to and from WKT, WKB, and GeoJSON for the following geometries:
* Point
* LineString
* Polygon
* MultiPoint
* MulitLineString
* MultiPolygon
* GeometryCollection
## Examples
* Encode and decode WKT and EWKT
```
iex(1)> point = Geo.WKT.decode("POINT(30 -90)")
Geo.Geometry[type: :point, coordinates: [30, -90], srid: nil]
iex(2)> Geo.WKT.encode(point)
"POINT(30 -90)"
iex(3)> point = Geo.WKT.decode("SRID=4326;POINT(30 -90)")
Geo.Geometry[type: :point, coordinates: [30, -90], srid: 4326]
```
* Encode and decode WKB and EWKB
```
iex(1)> point = Geo.WKB.decode("0101000000000000000000F03F000000000000F03F")
Geo.Geometry[type: :point, coordinates: [1.0, 1.0], srid: nil]
iex(2)> Geo.WKB.encode(point)
"00000000013FF00000000000003FF0000000000000"
iex(3)> point = Geo.WKB.decode("0101000020E61000009EFB613A637B4240CF2C0950D3735EC0")
Geo.Geometry[type: :point, coordinates: [36.9639657, -121.8097725], srid: 4326]
iex(4)> Geo.WKB.encode(point)
"0020000001000010E640427B633A61FB9EC05E73D350092CCF"
```
* Encode and decode GeoJSON
```
iex(1)> point = Geo.JSON.decode("{ \"type\": \"Point\", \"coordinates\": [100.0, 0.0] }")
Geo.Geometry[type: :point, coordinates: [100.0, 0.0], srid: nil]
iex(2)> Geo.JSON.encode(point)
"{\"type\":\"Point\",\"coordinates\":[100.0,0.0]}"
```