

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 spaziali
<a name="access-graph-opencypher-22-spatial-functions"></a>

Le seguenti funzioni spaziali sono disponibili in Neptune OpenCypher per lavorare con i tipi di dati geometrici:
+ [ST\$1Point](access-graph-opencypher-22-spatial-functions-st-point.md)
+ [ST\$1 GeomFromText](access-graph-opencypher-22-spatial-functions-st-geomfromtext.md)
+ [ST\$1 AsText](access-graph-opencypher-22-spatial-functions-st-astext.md)
+ [ST\$1 GeometryType](access-graph-opencypher-22-spatial-functions-st-geometrytype.md)
+ [ST\$1Equals](access-graph-opencypher-22-spatial-functions-st-equals.md)
+ [ST\$1Contains](access-graph-opencypher-22-spatial-functions-st-contains.md)
+ [ST\$1Intersects](access-graph-opencypher-22-spatial-functions-st-intersect.md)
+ [ST\$1Distance](access-graph-opencypher-22-spatial-functions-st-distance.md)
+ [ST\$1 DistanceSpheroid](access-graph-opencypher-22-spatial-functions-st-distancespheroid.md)
+ [ST\$1Envelope](access-graph-opencypher-22-spatial-functions-st-envelope.md)
+ [ST\$1Buffer](access-graph-opencypher-22-spatial-functions-st-buffer.md)

# ST\$1Point
<a name="access-graph-opencypher-22-spatial-functions-st-point"></a>

ST\$1Point restituisce un punto dai valori delle coordinate di input.

**Sintassi**

```
ST_Point(x, y, z)
```

**Arguments (Argomenti)**
+ `x`- Un valore del tipo di dati DOUBLE PRECISION che rappresenta una prima coordinata.
+ `y`- Un valore del tipo di dati DOUBLE PRECISION che rappresenta una seconda coordinata.
+ `z`- (opzionale)

**Ordine delle coordinate**

Quando si lavora con le coordinate geografiche, il primo argomento (`x`) rappresenta la **longitudine** e il secondo argomento (`y`) rappresenta la **latitudine**. Questo segue l'ordine di coordinate standard utilizzato nei database spaziali e lo standard ISO 19125.

```
// Correct: longitude first, latitude second
ST_Point(-84.4281, 33.6367)  // Atlanta airport

// Incorrect: latitude first, longitude second
ST_Point(33.6367, -84.4281)  // This will return NaN in distance calculations
```

**Intervalli di coordinate validi**

Per i dati geografici, assicurati che le coordinate rientrino in intervalli validi:
+ Longitudine (`x`): da -180 a 180
+ Latitudine (`y`): da -90 a 90

Le coordinate al di fuori di questi intervalli verranno restituite `NaN` (non un numero) se utilizzate con funzioni di calcolo della distanza come. `ST_DistanceSpheroid`

**Tipo restituito**

GEOMETRIA del sottotipo POINT

Se x o y sono nulli, allora viene restituito il valore nullo.

**Esempi**

Quanto segue costruisce una geometria puntuale a partire dalle coordinate di input.

```
RETURN ST_Point(5.0, 7.0); 
POINT(5 7)
```

# ST\$1 GeomFromText
<a name="access-graph-opencypher-22-spatial-functions-st-geomfromtext"></a>

ST\$1 GeomFromText costruisce un oggetto geometrico a partire da una rappresentazione testuale ben nota (WKT) di una geometria di input.

**Sintassi**

```
ST_GeomFromText(wkt_string)
```

**Arguments (Argomenti)**
+ `wkt_string`- Un valore di tipo di dati STRING che è una rappresentazione WKT di una geometria.

**Tipo restituito**

GEOMETRY

Se wkt\$1string è nullo, allora viene restituito nullo.

Se wkt\$1string non è valido, viene restituito a. BadRequestException 

**Esempi**

```
RETURN ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))')             
POLYGON((0 0,0 1,1 1,1 0,0 0))
```

# ST\$1 AsText
<a name="access-graph-opencypher-22-spatial-functions-st-astext"></a>

ST\$1 AsText restituisce la rappresentazione testuale ben nota (WKT) di una geometria di input.

**Sintassi**

```
ST_AsText(geo)
```

**Arguments (Argomenti)**
+ `geo`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce una GEOMETRY.

**Tipo restituito**

STRING

Se geo è nullo, allora viene restituito il valore nullo.

Se il parametro di input non è una geometria, viene restituito a. BadRequestException 

Se il risultato è più grande di una STRINGA da 64 KB, viene restituito un errore.

**Esempi**

```
RETURN ST_AsText(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))'))             
POLYGON((0 0,0 1,1 1,1 0,0 0))
```

# ST\$1 GeometryType
<a name="access-graph-opencypher-22-spatial-functions-st-geometrytype"></a>

ST\$1 GeometryType restituisce il tipo di geometria sotto forma di stringa.

**Sintassi**

```
ST_GeometryType(geom)
```

**Arguments (Argomenti)**
+ `geom`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce un tipo GEOMETRY.

**Tipo restituito**

STRING

Se geom è nullo, allora viene restituito il valore nullo.

Se il parametro di input non è una geometria, viene restituito a. BadRequestException 

**Esempi**

```
RETURN ST_GeometryType(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)'));
ST_LineString
```

# ST\$1Equals
<a name="access-graph-opencypher-22-spatial-functions-st-equals"></a>

ST\$1equals restituisce true se le proiezioni 2D delle geometrie di input sono topologicamente uguali. Le geometrie sono considerate topologicamente uguali se hanno insiemi di punti uguali. Nelle geometrie topologicamente uguali, l'ordine dei vertici può differire pur mantenendo questa uguaglianza.

**Sintassi**

```
ST_Equals(geom1, geom2)
```

**Arguments (Argomenti)**
+ `geom1`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce un tipo GEOMETRY.
+ `geom2`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce un tipo GEOMETRY. Questo valore è confrontato con geom1 per determinare se è uguale a geom1.

**Tipo restituito**

BOOLEAN

Se geom1 o geom2 sono nulli, allora viene restituito il valore nullo.

Se geom1 o geom2 non sono geometrie, viene restituito a. BadRequestException 

**Esempi**

```
RETURN ST_Equals(
    ST_GeomFromText('POLYGON ((0 2,1 1,0 -1,0 2))'), 
    ST_GeomFromText('POLYGON((-1 3,2 1,0 -3,-1 3))'));
false
```

Quanto segue controlla se le due stringhe di linea sono geometricamente uguali.

```
RETURN ST_Equals(
    ST_GeomFromText('LINESTRING (1 0, 10 0)'), 
    ST_GeomFromText('LINESTRING(1 0,5 0,10 0)'));
true
```

# ST\$1Contains
<a name="access-graph-opencypher-22-spatial-functions-st-contains"></a>

ST\$1Contains restituisce true se la proiezione 2D della prima geometria di input contiene la proiezione 2D della seconda geometria di input. La geometria A contiene la geometria B se ogni punto in B è un punto in A e i relativi interni hanno intersezioni non vuote. ST\$1contains (A, B) è equivalente a ST\$1Within (B, A).

**Sintassi**

```
ST_Contains(geom1, geom2)
```

**Arguments (Argomenti)**
+ `geom1`- Un valore di tipo GEOMETRY o un'espressione che restituisce un tipo GEOMETRY.
+ `geom2`- Un valore di tipo GEOMETRY o un'espressione che restituisce un tipo di GEOMETRY. Questo valore è confrontato con geom1 per determinare se è contenuto all'interno di geom1.

**Tipo restituito**

BOOLEAN

Se geom1 o geom2 sono nulli, allora viene restituito il valore nullo.

Se il parametro di input non è una geometria, viene restituito a. BadRequestException 

**Esempi**

```
RETURN ST_Contains(
    ST_GeomFromText('POLYGON((0 2,1 1,0 -1,0 2))'), 
    ST_GeomFromText('POLYGON((-1 3,2 1,0 -3,-1 3))'));
false
```

# ST\$1Intersects
<a name="access-graph-opencypher-22-spatial-functions-st-intersect"></a>

ST\$1Intersects restituisce true se le proiezioni 2D delle due geometrie di input hanno almeno un punto in comune.

**Sintassi**

```
ST_Intersects(geom1, geom2)
```

**Arguments (Argomenti)**
+ `geom1`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce un tipo GEOMETRY.
+ `geom2`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce un tipo GEOMETRY.

**Tipo restituito**

BOOLEAN

Se geom1 o geom2 sono nulli, allora viene restituito il valore nullo.

Se il parametro di input non è una geometria, viene restituito a. BadRequestException 

**Esempi**

```
RETURN ST_Intersects(
    ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(2 2,2 5,5 5,5 2,2 2))'), 
    ST_GeomFromText('MULTIPOINT((4 4),(6 6))'));
true
```

# ST\$1Distance
<a name="access-graph-opencypher-22-spatial-functions-st-distance"></a>

Per le geometrie di input, ST\$1Distance restituisce la distanza euclidea minima tra le proiezioni 2D dei due valori della geometria di input.

**Sintassi**

```
ST_Distance(geo1, geo2)
```

**Arguments (Argomenti)**
+ `geo1`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce un tipo GEOMETRY.
+ `geo2`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce un valore GEOMETRY.

**Tipo restituito**

DOPPIA PRECISIONE nelle stesse unità delle geometrie di input.

Se geo1 o geo2 sono nulli, viene restituito null.

Se il parametro di input non è una geometria, viene restituito a. BadRequestException 

**Esempi**

```
RETURN ST_Distance(
    ST_GeomFromText('POLYGON((0 2,1 1,0 -1,0 2))'), 
    ST_GeomFromText('POLYGON((-1 -3,-2 -1,0 -3,-1 -3))'));
1.4142135623731
```

# ST\$1 DistanceSpheroid
<a name="access-graph-opencypher-22-spatial-functions-st-distancespheroid"></a>

Restituisce la distanza minima in metri tra due lon/lat geometrie. Lo sferoide è WGS84 /SRID 4326.

**Sintassi**

```
ST_DistanceSpheroid(geom1, geom2);
```

**Arguments (Argomenti)**
+ `geom1`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce un tipo GEOMETRY.
+ `geom2`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce un tipo GEOMETRY.

**Tipo restituito**

FLOAT

Se geom è nullo, allora viene restituito il valore nullo.

**Esempi**

```
RETURN ST_DistanceSpheroid(
    ST_GeomFromText('POINT(-110 42)'),
    ST_GeomFromText('POINT(-118 38)'))
814278.77
```

# ST\$1Envelope
<a name="access-graph-opencypher-22-spatial-functions-st-envelope"></a>

ST\$1Envelope restituisce il riquadro di delimitazione minimo della geometria di input, come segue:
+ Se la geometria di input è vuota, la geometria restituita sarà POINT EMPTY.
+ Se il riquadro di delimitazione minimo della geometria di input degenera in un punto, la geometria restituita è un punto.
+ Se nessuna delle precedenti condizioni è vera, la funzione restituisce un counter-clockwise-oriented poligono i cui vertici sono gli angoli del riquadro di delimitazione minimo.

Per tutti gli input non vuoti, la funzione opera sulla proiezione 2D della geometria di input.

**Sintassi**

```
ST_Envelope(geom)
```

**Arguments (Argomenti)**
+ `geom`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce un tipo GEOMETRY.

**Tipo restituito**

GEOMETRY

Se geom è nullo, allora viene restituito il valore nullo.

**Esempi**

```
RETURN ST_Envelope(ST_GeomFromText("POLYGON ((2 1, 4 3, 6 1, 5 5, 3 4, 2 1))"))
POLYGON ((2 1, 6 1, 6 5, 2 5, 2 1))
```

# ST\$1Buffer
<a name="access-graph-opencypher-22-spatial-functions-st-buffer"></a>

ST\$1Buffer restituisce la geometria 2D che rappresenta tutti i punti la cui distanza dalla geometria di input proiettata sul piano cartesiano XY è minore o uguale alla distanza di input.

**Sintassi**

```
ST_Buffer(geom, distance, number_of_segments_per_quarter_circle)
```

**Arguments (Argomenti)**
+ `geom`- Un valore del tipo di dati GEOMETRY o un'espressione che restituisce un tipo GEOMETRY.
+ `distance`- Un valore del tipo di dati DOUBLE PRECISION che rappresenta la distanza (o il raggio) del buffer.
+ `number_of_segments_per_quarter_circle`- Un valore del tipo di dati INTEGER (deve essere maggiore o uguale a 0). Questo valore determina il numero di punti per approssimare un quarto di cerchio attorno a ciascun vertice della geometria di input. Per impostazione predefinita, i valori negativi sono zero. Il valore di default è 8.

**Tipo restituito**

GEOMETRY

La funzione ST\$1Buffer restituisce una geometria bidimensionale (2D) nel piano cartesiano XY.

**Esempi**

```
RETURN ST_Buffer(ST_GeomFromText('LINESTRING (1 2,5 2,5 8)'), 2, 4);
POLYGON ((3 4, 3 8, 3.1522409349774265 8.76536686473018,
         3.585786437626905 9.414213562373096, 4.234633135269821 9.847759065022574,
         5 10, 5.765366864730179 9.847759065022574,
         6.414213562373095 9.414213562373096, 6.847759065022574 8.76536686473018,
         7 8, 7 2, 6.847759065022574 1.2346331352698203,
         6.414213562373095 0.5857864376269051, 5.765366864730179 0.1522409349774265,
         5 0, 1 0, 0.2346331352698193 0.152240934977427,
         -0.4142135623730954 0.5857864376269051,
         -0.8477590650225737 1.2346331352698208, -1 2.0000000000000004,
         -0.8477590650225735 2.7653668647301797,
         -0.4142135623730949 3.414213562373095,
         0.2346331352698206 3.8477590650225735, 1 4, 3 4))
```

Quanto segue restituisce il buffer della geometria del punto di input che approssima un cerchio. Poiché il comando specifica 3 come numero di segmenti per quarto di cerchio, per approssimare il quarto di cerchio la funzione utilizza tre segmenti.

```
RETURN ST_Buffer(ST_GeomFromText('POINT (1 1)'), 1.0, 8));
POLYGON ((2 1, 1.9807852804032304 0.8049096779838718,
     1.9238795325112867 0.6173165676349102, 1.8314696123025453 0.4444297669803978,
     1.7071067811865475 0.2928932188134525, 1.5555702330196022 0.1685303876974548,
     1.3826834323650898 0.0761204674887133, 1.1950903220161284 0.0192147195967696,
     1 0, 0.8049096779838718 0.0192147195967696, 0.6173165676349103 0.0761204674887133,
    0.444429766980398 0.1685303876974545, 0.2928932188134525 0.2928932188134524,
     0.1685303876974546 0.4444297669803978, 0.0761204674887133 0.6173165676349102,
     0.0192147195967696 0.8049096779838714, 0 0.9999999999999999,
     0.0192147195967696 1.1950903220161284, 0.0761204674887132 1.3826834323650896,
     0.1685303876974545 1.555570233019602, 0.2928932188134523 1.7071067811865475,
     0.4444297669803978 1.8314696123025453, 0.6173165676349097 1.9238795325112865,
     0.8049096779838714 1.9807852804032304, 0.9999999999999998 2,
     1.1950903220161284 1.9807852804032304, 1.38268343236509 1.9238795325112865,
     1.5555702330196017 1.8314696123025453, 1.7071067811865475 1.7071067811865477,
     1.8314696123025453 1.5555702330196022, 1.9238795325112865 1.3826834323650905,
     1.9807852804032304 1.1950903220161286, 2 1))
```