# geo.jts

```Wrapper for the locationtech JTS spatial library. Constructors for points,
coordinate sequences, rings, polygons, multipolygons, and so on.```

### centroid

`(centroid g)`
```Get the centroid of a JTS object.
```

### coord

`(coord point)`

### coord-array

`(coord-array coordinates)`

### coordinate

`(coordinate x y)``(coordinate x y z)``(coordinate x y z m)`
```Creates a Coordinate.
```

### coordinate-sequence

`(coordinate-sequence coordinates)`
```Given a list of Coordinates, generates a CoordinateSequence.
```

### coordinates

`(coordinates geom)`
```Get a sequence of Coordinates from a Geometry
```

### coords

`(coords linestring)`

### envelope

`(envelope c1 c2)`
```Create a JTS envelope from two coordinates.
```

### geom-array

`(geom-array geoms)`

### geometries

`(geometries c)`
```Given a GeometryCollection, generate a sequence of Geometries
```

### geometry-collection

`(geometry-collection geometries)`
```Given a list of Geometries, generates a GeometryCollection.
```

### get-envelope-internal

`(get-envelope-internal g)`
```Get a JTS envelope from a geometry.
```

### get-factory

`(get-factory geom)`
```Gets a GeometryFactory for a given geometry.
```

### get-srid

`(get-srid geom)`
```Gets an integer SRID for a given geometry.
```

### gf

`(gf srid)`
```Creates a GeometryFactory for a given SRID.
```

### intersection

`(intersection g1 g2)`
```Get the intersection of two geometries.
```

### linear-ring

`(linear-ring coordinates)``(linear-ring coordinates srid)`
```Given a list of Coordinates, creates a LinearRing. Allows an optional SRID argument at end.
```

### linear-ring-array

`(linear-ring-array rings)`

### linear-ring-wkt

`(linear-ring-wkt coordinates)``(linear-ring-wkt coordinates srid)`
```Makes a LinearRing from a WKT-style data structure: a flat sequence of
coordinate pairs, e.g. [0 0, 1 0, 0 2, 0 0]. Allows an optional SRID argument at end.```

### linestring

`(linestring coordinates)``(linestring coordinates srid)`
```Given a list of Coordinates, creates a LineString. Allows an optional SRID argument at end.
```

### linestring-wkt

`(linestring-wkt coordinates)``(linestring-wkt coordinates srid)`
```Makes a LineString from a WKT-style data structure: a flat sequence of
coordinate pairs, e.g. [0 0, 1 0, 0 2, 0 0]. Allows an optional SRID argument at end.```

### multi-polygon

`(multi-polygon polygons)`
```Given a list of polygons, generates a MultiPolygon.
```

### multi-polygon-wkt

`(multi-polygon-wkt wkt)``(multi-polygon-wkt wkt srid)`
```Creates a MultiPolygon from a WKT-style data structure, e.g. [[[0 0 1 0 2 2
0 0]] [5 5 10 10 6 2]]. Allows an optional SRID argument at end.```

### point

`(point coordinate)``(point lat long)``(point x y srid)`
```Creates a Point from a Coordinate, a lat/long, or an x,y pair with an SRID.
```

### point-n

`(point-n linestring idx)`
```Get the point for a linestring at the specified index.
```

### polygon

`(polygon shell)``(polygon shell holes)`
```Given a LinearRing shell, and a list of LinearRing holes, generates a
polygon.```

### polygon-array

`(polygon-array polygons)`

### polygon-wkt

`(polygon-wkt rings)``(polygon-wkt rings srid)`
```Generates a polygon from a WKT-style data structure: a sequence of
[outer-ring hole1 hole2 ...], where outer-ring and each hole is a flat list
of coordinate pairs, e.g.

[[0 0 10 0 10 10 0 0]
[1 1  9 1  9  9 1 1]].

Allows an optional SRID argument at end.```

### polygons

`(polygons m)`
```Given a MultiPolygon, generate a sequence of Polygons
```

### same-coords?

`(same-coords? c1 c2)`
```Check if two Coordinates have the same number of dimensions and equal ordinates.
```

### same-geom?

`(same-geom? g1 g2)`
```Check if two geometries are topologically equal, with the same SRID.
Two SRIDs of 0 are considered equal to each other.```

### same-srid?

`(same-srid? g1 g2)`
```Check if two Geometries have the same SRID. If both geometries have SRIDs of 0, will also return true.
```

### segment-at-idx

`(segment-at-idx linestring idx)`
```LineSegment from a LineString's point at index to index + 1.
```

### set-srid

`(set-srid geom srid)`
```Sets a geometry's SRID to a new value, and returns that geometry.
```

### subdivide

`(subdivide g)`
```Subdivide a Geometry into quadrants around its centroid.
```

### transform-geom

`(transform-geom g crs)``(transform-geom g crs1 crs2)`
```Transform a Geometry using a proj4j transform, if needed. Returns a new Geometry if a transform occurs.
When only one CRS is given, get the CRS of the existing geometry.
When two are given, force the transformation to occur between those two systems.```

### wkt->coords-array

`(wkt->coords-array flat-coord-list)`