Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Funzioni di accesso
Le funzioni di accesso sono utili per ottenere valori nei tipi varchar
, bigint
o double
da diversi tipi di dati geometry
, dove geometry
è uno dei tipi di dati di geometria supportati in Athena: point
, line
, polygon
, multiline
e multipolygon
. Ad esempio, è possibile ottenere un'area di un tipo di dati di geometria polygon
, valori massimo e minimo di X e Y per un determinato tipo di dati di geometria, ottenere la lunghezza di line
o ricevere il numero di punti in un determinato tipo di dati di geometria.
geometry_invalid_reason(geometry)
Restituisce, in un tipo di dati varchar, il motivo per cui la geometria specificata non è valida o non semplice. Se la geometria specificata non è né valida né semplice, restituisce il motivo per cui non è valida. Se la geometria specificata è valida e semplice, restituisce null. Esempio:
SELECT geometry_invalid_reason(ST_Point(-158.54, 61.56))
great_circle_distance(latitude1, longitude1, latitude2,
longitude2)
Restituisce, come doppio, la distanza ortodromica tra due punti sulla superficie terrestre in chilometri. Esempio:
SELECT great_circle_distance(36.12, -86.67, 33.94, -118.40)
line_locate_point(lineString, point)
Restituisce un doppio compreso tra 0 e 1 che rappresenta la posizione del punto più vicino sulla stringa di riga specificata al punto specificato come frazione della lunghezza totale della linea 2d.
Restituisce null se la stringa di riga o il punto specificato è vuota o nullo. Esempio:
SELECT line_locate_point(ST_GeometryFromText('LINESTRING (0 0, 0 1)'), ST_Point(0, 0.2))
simplify_geometry(geometry, double)
Utilizza l'amer-douglas-peucker algoritmo R
SELECT simplify_geometry(ST_GeometryFromText('POLYGON ((1 0, 2 1, 3 1, 3 1, 4 1, 1 0))'), 1.5)
ST_Area(geometry)
Richiede come input un tipo di dati di geometria e restituisce un'area nel tipo double
. Esempio:
SELECT ST_Area(ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))'))
ST_Centroid(geometry)
Richiede come input un tipo di dati di geometria polygon
e restituisce un tipo di dati di geometria point
, che è il centro dell'envelope del poligono. Esempi:
SELECT ST_Centroid(ST_GeometryFromText('polygon ((0 0, 3 6, 6 0, 0 0))'))
SELECT ST_AsText(ST_Centroid(ST_Envelope(ST_GeometryFromText('POINT (53 27)'))))
ST_ConvexHull(geometry)
Restituisce un tipo di dati della geometria che è la geometria convessa più piccola che racchiude tutte le geometrie nell'input specificato. Esempio:
SELECT ST_ConvexHull(ST_Point(-158.54, 61.56))
ST_CoordDim(geometry)
Richiede come input uno dei tipi di dati di geometria supportati e restituisce il numero di componenti di coordinata nel tipo tinyint
. Esempio:
SELECT ST_CoordDim(ST_Point(1.5,2.5))
ST_Dimension(geometry)
Richiede come input uno dei tipi di dati di geometria supportati e restituisce la dimensione spaziale di una geometria nel tipo tinyint
. Esempio:
SELECT ST_Dimension(ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))'))
ST_Distance(geometry, geometry)
Restituisce, in base al ref spaziale, un doppio contenente la distanza cartesiana minima bidimensionale tra due geometrie in unità proiettate. A partire dalla versione 2 del motore Athena, restituisce null se uno degli input è una geometria vuota. Esempio:
SELECT ST_Distance(ST_Point(0.0,0.0), ST_Point(3.0,4.0))
ST_Distance(sphericalGeography, sphericalGeography)
Restituisce, come doppio, la distanza grande cerchio tra due punti geografici sferici, espressa in metri. Esempio:
SELECT ST_Distance(to_spherical_geography(ST_Point(61.56, -86.67)),to_spherical_geography(ST_Point(61.56, -86.68)))
ST_EndPoint(geometry)
Restituisce l'ultimo punto di un tipo di dati di geometria line
nel tipo di dati della geometria point
. Esempio:
SELECT ST_EndPoint(ST_Line('linestring(0 2, 2 2)'))
ST_Geometries(geometry)
Restituisce un array di oggetti geometrici nell'insieme specificato. Se la geometria specificata non è una geometria multigeometria, restituisce un array a un elemento. Se la geometria specificata è vuota, restituisce il valore null.
Ad esempio, dato un oggetto MultiLineString
, ST_Geometries
crea un array di oggetti LineString
. Dato un oggetto GeometryCollection
, ST_Geometries
restituisce un array non appiattito dei suoi costituenti. Esempio:
SELECT ST_Geometries(GEOMETRYCOLLECTION(MULTIPOINT(0 0, 1 1), GEOMETRYCOLLECTION(MULTILINESTRING((2 2, 3 3)))))
Risultato:
array[MULTIPOINT(0 0, 1 1),GEOMETRYCOLLECTION(MULTILINESTRING((2 2, 3 3)))]
ST_GeometryN(geometry, index)
Restituisce, come tipo di dati della geometria, l'elemento della geometria a un indice intero specificato. Gli indici iniziano da 1. Se la geometria specificata è un insieme di geometrie (ad esempio, un oggetto GEOMETRYCOLLECTION
o MULTI*
), restituisce la geometria all'indice specificato. Se l'indice specificato è minore di 1 o maggiore del numero totale di elementi nell'insieme, restituisce null. Per trovare il numero totale di elementi, usare ST_NumGeometries. Le geometrie singolari (ad esempio, POINT
, LINESTRING
o POLYGON
), vengono trattate come insiemi di un elemento. Le geometrie vuote vengono trattate come raccolte vuote. Esempio:
SELECT ST_GeometryN(ST_Point(-158.54, 61.56),1)
ST_GeometryType(geometry)
Restituisce, come varchar, il tipo di geometria. Esempio:
SELECT ST_GeometryType(ST_Point(-158.54, 61.56))
ST_InteriorRingN(geometry, index)
Restituisce l'elemento anello interno all'indice specificato (gli indici iniziano da 1). Se l'indice dato è minore di 1 o maggiore del numero totale di elementi degli anelli interni nella geometria specificata, restituisce null. Genera un errore se la geometria specificata non è un poligono. Per trovare il numero totale di elementi, usare ST_NumInteriorRing. Esempio:
SELECT ST_InteriorRingN(st_polygon('polygon ((0 0, 1 0, 1 1, 0 1, 0 0))'),1)
ST_InteriorRings(geometry)
Restituisce un array geometrico di tutti gli anelli interni trovati nella geometria specificata o un array vuoto se il poligono non ha anelli interni. Se la geometria specificata è vuota, restituisce il valore null. Se la geometria specificata non è un poligono, genera un errore. Esempio:
SELECT ST_InteriorRings(st_polygon('polygon ((0 0, 1 0, 1 1, 0 1, 0 0))'))
ST_IsClosed(geometry)
Accetta come input solo line
e i tipi di dati di geometria multiline
. Restituisce TRUE
(tipo boolean
) se e solo se la linea è chiusa. Esempio:
SELECT ST_IsClosed(ST_Line('linestring(0 2, 2 2)'))
ST_IsEmpty(geometry)
Accetta come input solo line
e i tipi di dati di geometria multiline
. Restituisce TRUE
(tipo boolean
) se e solo se la geometria specificata è vuota, in altre parole, quando i valori di inizio e fine line
coincidono. Esempio:
SELECT ST_IsEmpty(ST_Point(1.5, 2.5))
ST_IsRing(geometry)
Restituisce TRUE
(tipo boolean
) se e solo se il tipo line
è chiuso e semplice. Esempio:
SELECT ST_IsRing(ST_Line('linestring(0 2, 2 2)'))
ST_IsSimple(geometry)
Restituisce true se la geometria specificata non ha punti geometrici anomali (ad esempio, auto-intersezione o auto-tangenza). Per determinare il motivo per cui la geometria non è semplice, utilizzare geometry_invalid_reason(). Esempio:
SELECT ST_IsSimple(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))
ST_IsValid(geometry)
Restituisce true se e solo se la geometria specificata è ben formata. Per determinare il motivo per cui la geometria non è ben formata, utilizzare geometry_invalid_reason(). Esempio:
SELECT ST_IsValid(ST_Point(61.56, -86.68))
ST_Length(geometry)
Restituisce la lunghezza di line
nel tipo double
. Esempio:
SELECT ST_Length(ST_Line('linestring(0 2, 2 2)'))
ST_NumGeometries(geometry)
Restituisce, come numero intero intero, il numero di oggetti geometrici presenti nell'insieme. Se la geometria è un insieme di geometrie (ad esempio, un oggetto GEOMETRYCOLLECTION
o MULTI*
), restituisce il numero di geometrie. Le geometrie singole restituiscono 1; le geometrie vuote restituiscono 0. Una geometria vuota in un oggetto GEOMETRYCOLLECTION
viene conteggiata come una geometria. Ad esempio, la seguente espressione di esempio restituisce 1:
ST_NumGeometries(ST_GeometryFromText('GEOMETRYCOLLECTION(MULTIPOINT EMPTY)'))
ST_NumInteriorRing(geometry)
Restituisce il numero di anelli interni nella geometria polygon
nel tipo bigint
. Esempio:
SELECT ST_NumInteriorRing(ST_Polygon('polygon ((0 0, 8 0, 0 8, 0 0), (1 1, 1 5, 5 1, 1 1))'))
ST_NumPoints(geometry)
Restituisce il numero di punti nella geometria nel tipo bigint
. Esempio:
SELECT ST_NumPoints(ST_Point(1.5, 2.5))
ST_PointN(lineString,
index)
Restituisce, come tipo di dati della geometria puntuale, il vertice della stringa di linea specificata in corrispondenza dell'indice intero specificato. Gli indici iniziano da 1. Se l'indice specificato è minore di 1 o maggiore del numero totale di elementi nell'insieme, restituisce null. Per trovare il numero totale di elementi, usare ST_NumPoints. Esempio:
SELECT ST_PointN(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]),1)
ST_Points(geometry)
Restituisce una matrice di punti dall'oggetto geometria specificato della stringa di linea. Esempio:
SELECT ST_Points(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))
ST_StartPoint(geometry)
Restituisce il primo punto di un tipo di dati di geometria line
nel tipo di dati della geometria point
. Esempio:
SELECT ST_StartPoint(ST_Line('linestring(0 2, 2 2)'))
ST_X(point)
Restituisce la coordinata X di un punto nel tipo double
. Esempio:
SELECT ST_X(ST_Point(1.5, 2.5))
ST_XMax(geometry)
Restituisce la coordinata X massima di una geometria nel tipo double
. Esempio:
SELECT ST_XMax(ST_Line('linestring(0 2, 2 2)'))
ST_XMin(geometry)
Restituisce la coordinata X minima di una geometria nel tipo double
. Esempio:
SELECT ST_XMin(ST_Line('linestring(0 2, 2 2)'))
ST_Y(point)
Restituisce la coordinata Y di un punto nel tipo double
. Esempio:
SELECT ST_Y(ST_Point(1.5, 2.5))
ST_YMax(geometry)
Restituisce la coordinata Y massima di una geometria nel tipo double
. Esempio:
SELECT ST_YMax(ST_Line('linestring(0 2, 2 2)'))
ST_YMin(geometry)
Restituisce la coordinata Y minima di una geometria nel tipo double
. Esempio:
SELECT ST_YMin(ST_Line('linestring(0 2, 2 2)'))