# W3cubDocs

/RethinkDB Python

# ReQL command: polygon

## Command syntax

```r.polygon([lon1, lat1], [lon2, lat2], [lon3, lat3], ...) → polygon
r.polygon(point1, point2, point3, ...) → polygon
```

## Description

Construct a geometry object of type Polygon. The Polygon can be specified in one of two ways:

• Three or more two-item arrays, specifying latitude and longitude numbers of the polygon’s vertices;
• Three or more Point objects specifying the polygon’s vertices.

Longitude (−180 to 180) and latitude (−90 to 90) of vertices are plotted on a perfect sphere. See Geospatial support for more information on ReQL’s coordinate system.

If the last point does not specify the same coordinates as the first point, `polygon` will close the polygon by connecting them. You cannot directly construct a polygon with holes in it using `polygon`, but you can use polygon_sub to use a second polygon within the interior of the first to define a hole.

Example: Define a polygon.

```r.table('geo').insert({
'id': 101,
'rectangle': r.polygon(
[-122.423246, 37.779388],
[-122.423246, 37.329898],
[-121.886420, 37.329898],
[-121.886420, 37.779388]
)
}).run(conn)
```

Example: Define a polygon using an array of vertices.

You can use the args command to pass an array of Point objects (or latitude-longitude pairs) to `polygon`.

```vertices = [
[-122.423246, 37.779388],
[-122.423246, 37.329898],
[-121.886420, 37.329898],
[-121.886420, 37.779388]
]
r.table('geo').insert({
'id': 102,
'rectangle': r.polygon(r.args(vertices))
}).run(conn)
```

## Get more help

Couldn't find what you were looking for?