Skip to main content

Geometry

Geometry functions allow you to calculate perimeter, area and length for geometric types such as POLYGON, LINESTRING, MULTIPOLYGON, MULTILINESTRING, RING, and POINT. Use geometries in Geometry type. If the input value is NULL, all functions below will return 0.

perimeterCartesian

Calculates the perimeter of the given Geometry object in the Cartesian (flat) coordinate system. Syntax
Arguments Returned values
  • Number — Perimeter of the object in the coordinate system units. Float64.
Example
Query
Response

areaCartesian

Calculates the area of the given Geometry object in the Cartesian coordinate system. Syntax
Arguments Returned values
  • Number — Area of the object in coordinate system units. Float64.
Example
Query
Response

perimeterSpherical

Calculates the perimeter of a Geometry object on the surface of a sphere. Syntax
Arguments Returned values
  • Number — Perimeter on a sphere of radius 1, in radians (coordinates are longitude and latitude in degrees). Multiply by the radius of the sphere to get a length, for example by 6371 for kilometers on the Earth. Float64.
Example
Query
Response

areaSpherical

Calculates the area of a Geometry object on the surface of a sphere. Syntax
Arguments Returned values
  • Number — Area on a sphere of radius 1, in steradians (coordinates are longitude and latitude in degrees). Multiply by the square of the radius of the sphere to get an area. Float64.
Example
Query
Response

lengthCartesian

Calculates the length of the lines of a Geometry object in the Cartesian (flat) coordinate system: the sum of the distances between consecutive points. A MultiLineString has the total length of its lines, and a Ring is measured as the line through its points, as is an array of points without a type name, which has the type Ring. Points, polygons and multipolygons have no length, so the function returns 0 for them: use perimeterCartesian for the perimeter of a polygon. To measure an array of arrays of points, cast it to MultiLineString: without a type name, it has the type Polygon. Alias: ST_Length. Syntax
Arguments Returned values
  • Number — Length of the lines in the coordinate system units. Float64.
Example
Query
Response

lengthSpherical

Calculates the length of the lines of a Geometry object on the surface of a sphere, with points given as (longitude, latitude) in degrees. The result is an angle in radians, which is the length on a sphere of radius 1, like the result of perimeterSpherical. Multiply it by the mean radius of the Earth, 6371008.8 meters, for an approximate length in meters, or use lengthSpheroid for an accurate one. Like lengthCartesian, it returns 0 for points, polygons and multipolygons. Syntax
Arguments Returned values
  • Number — Length of the lines in radians. Float64.
Example
Query
Response

lengthSpheroid

Calculates the length of the lines of a Geometry object in meters on the WGS84 spheroid, the model of the Earth used by GPS, with points given as (longitude, latitude) in degrees. Each segment is the shortest path between its points on the spheroid (a geodesic), calculated with Karney’s algorithm, as in GeographicLib. Like lengthCartesian, it returns 0 for points, polygons and multipolygons. For coordinates stored as (latitude, longitude), such as the input of ST_Length_Spheroid in DuckDB, swap them first with flipCoordinates: without it, the result is the length of a different line. If a coordinate is NaN or infinite, or a latitude is outside [-90, 90], the result is NaN. Syntax
Arguments Returned values
  • Number — Length of the lines in meters. Float64.
Example The length of a line from London through Paris to Berlin:
Query
Response