W3cubDocs

/RethinkDB Ruby

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)

Related commands

Get more help

Couldn't find what you were looking for?

© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/ruby/polygon/