constructors
CORE
This module contains functions that create new geographies from coordinates or already existing geographies.
ST_BEZIERSPLINE(geog, resolution, sharpness)
Description
Takes a line and returns a curved version of it by applying a Bezier spline algorithm. Note that the resulting geography will be a LineString with additional points inserted.
geog
:GEOGRAPHY
input LineString.resolution
:INT64
|NULL
total time in milliseconds assigned to the line. IfNULL
the default value10000
is used. Internal curve vertices are generated in 10 ms increments, so the maximum number of resulting points will beresolution/10
(close points may be merged resulting in less points). A higher number will increase the accuracy of the result but will increase the computation time and number of points.sharpness
:FLOAT64
|NULL
a measure of how curvy the path should be between splines. IfNULL
the default value0.85
is used.
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.ST_BEZIERSPLINE(
ST_GEOGFROMTEXT(
"LINESTRING (-76.091308 18.427501,-76.695556 18.729501,-76.552734 19.40443,-74.61914 19.134789,-73.652343 20.07657,-73.157958 20.210656)"
),
10000,
0.9
);
-- LINESTRING(-76.091308 18.427501, -76.0916216712943 ...
SELECT `carto-un-eu`.carto.ST_BEZIERSPLINE(
ST_GEOGFROMTEXT(
"LINESTRING (-76.091308 18.427501,-76.695556 18.729501,-76.552734 19.40443,-74.61914 19.134789,-73.652343 20.07657,-73.157958 20.210656)"
),
10000,
0.9
);
-- LINESTRING(-76.091308 18.427501, -76.0916216712943 ...
SELECT `carto-os`.carto.ST_BEZIERSPLINE(
ST_GEOGFROMTEXT(
"LINESTRING (-76.091308 18.427501,-76.695556 18.729501,-76.552734 19.40443,-74.61914 19.134789,-73.652343 20.07657,-73.157958 20.210656)"
),
10000,
0.9
);
-- LINESTRING(-76.091308 18.427501, -76.0916216712943 ...
SELECT carto.ST_BEZIERSPLINE(
ST_GEOGFROMTEXT(
"LINESTRING (-76.091308 18.427501,-76.695556 18.729501,-76.552734 19.40443,-74.61914 19.134789,-73.652343 20.07657,-73.157958 20.210656)"
),
10000,
0.9
);
-- LINESTRING(-76.091308 18.427501, -76.0916216712943 ...
Additional examples
ST_MAKEELLIPSE(geog, xSemiAxis, ySemiAxis, angle, units, steps)
Description
Takes a Point and calculates the ellipse polygon given two semi-axes expressed in variable units and steps for precision.
center
:GEOGRAPHY
center point.xSemiAxis
:FLOAT64
semi (major) axis of the ellipse along the x-axis.ySemiAxis
:FLOAT64
semi (minor) axis of the ellipse along the y-axis.angle
:FLOAT64
|NULL
angle of rotation (along the vertical axis), from North in decimal degrees, negative clockwise. IfNULL
the default value0
is used.units
:STRING
|NULL
units of length, the supported options are: miles, kilometers, and degrees. IfNULL
the default valuekilometers
is used.steps
:INT64
|NULL
number of steps. IfNULL
the default value64
is used.
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.ST_MAKEELLIPSE(
ST_GEOGPOINT(-73.9385,40.6643),
5,
3,
-30,
"miles",
80
);
-- POLYGON((-73.8558575786687 40.7004828957859 ...
SELECT `carto-un-eu`.carto.ST_MAKEELLIPSE(
ST_GEOGPOINT(-73.9385,40.6643),
5,
3,
-30,
"miles",
80
);
-- POLYGON((-73.8558575786687 40.7004828957859 ...
SELECT `carto-os`.carto.ST_MAKEELLIPSE(
ST_GEOGPOINT(-73.9385,40.6643),
5,
3,
-30,
"miles",
80
);
-- POLYGON((-73.8558575786687 40.7004828957859 ...
SELECT carto.ST_MAKEELLIPSE(
ST_GEOGPOINT(-73.9385,40.6643),
5,
3,
-30,
"miles",
80
);
-- POLYGON((-73.8558575786687 40.7004828957859 ...
ST_MAKEENVELOPE(xmin, ymin, xmax, ymax)
Description Creates a rectangular Polygon from the minimum and maximum values for X and Y.
xmin
:FLOAT64
minimum value for X.ymin
:FLOAT64
minimum value for Y.xmax
:FLOAT64
maximum value for X.ymax
:FLOAT64
maximum value for Y.
Return type
GEOGRAPHY
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.ST_MAKEENVELOPE(0,0,1,1);
-- POLYGON((1 0, 1 1, 0 1, 0 0, 1 0))
SELECT `carto-un-eu`.carto.ST_MAKEENVELOPE(0,0,1,1);
-- POLYGON((1 0, 1 1, 0 1, 0 0, 1 0))
SELECT `carto-os`.carto.ST_MAKEENVELOPE(0,0,1,1);
-- POLYGON((1 0, 1 1, 0 1, 0 0, 1 0))
SELECT carto.ST_MAKEENVELOPE(0,0,1,1);
-- POLYGON((1 0, 1 1, 0 1, 0 0, 1 0))
Additional examples
ST_TILEENVELOPE(zoomLevel, xTile, yTile)
zoomLevel
:INT64
zoom level of the tile.xTile
:INT64
X index of the tile.yTile
:INT64
Y index of the tile.
Return type
GEOGRAPHY
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.ST_TILEENVELOPE(10,384,368);
-- POLYGON((-45 45.089035564831, -45 44.840290651398, -44.82421875 44.840290651398, -44.6484375 44.840290651398, -44.6484375 45.089035564831, -44.82421875 45.089035564831, -45 45.089035564831))
SELECT `carto-un-eu`.carto.ST_TILEENVELOPE(10,384,368);
-- POLYGON((-45 45.089035564831, -45 44.840290651398, -44.82421875 44.840290651398, -44.6484375 44.840290651398, -44.6484375 45.089035564831, -44.82421875 45.089035564831, -45 45.089035564831))
SELECT `carto-os`.carto.ST_TILEENVELOPE(10,384,368);
-- POLYGON((-45 45.089035564831, -45 44.840290651398, -44.82421875 44.840290651398, -44.6484375 44.840290651398, -44.6484375 45.089035564831, -44.82421875 45.089035564831, -45 45.089035564831))
SELECT carto.ST_TILEENVELOPE(10,384,368);
-- POLYGON((-45 45.089035564831, -45 44.840290651398, -44.82421875 44.840290651398, -44.6484375 44.840290651398, -44.6484375 45.089035564831, -44.82421875 45.089035564831, -45 45.089035564831))
Additional examples
​
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 960401.

Last modified 1mo ago