Condividi tramite


STBuffer (tipo di dati geography)

Restituisce un oggetto geografico che rappresenta l'unione di tutti i punti la cui distanza da un'istanza geography è minore o uguale a un valore specificato.

Questo metodo con tipo di dati geography supporta le istanze FullGlobe o le istanze spaziali con dimensioni maggiori di un emisfero.

Sintassi

.STBuffer ( distance )

Argomenti

  • distance
    Valore di tipo float (double in .NET Framework) che specifica la distanza dall'istanza geography intorno alla quale calcolare il buffer.

    La distanza massima del buffer non può superare 0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 della circonferenza della Terra) o l'intero globo.

Tipi restituiti

SQL Server tipo restituito: geography

Tipo CLR restituito: SqlGeography

Osservazioni

STBuffer() consente di calcolare un buffer in modo analogo a BufferWithTolerance, specificando tolerance abs(distanza) * 0,001 e relative = false.

Un buffer negativo consente di rimuovere tutti i punti all'interno della distanza specificata del limite dell'istanza geography.

STBuffer() restituisce un'istanza FullGlobe in determinati casi; ad esempio, STBuffer() restituisce un'istanza FullGlobe quando la distanza del buffer è maggiore della distanza dall'equatore ai poli. Un buffer non può superare l'intero globo.

Questo metodo genererà ArgumentException nelle istanze FullGlobe in cui la distanza del buffer eccede il limite seguente:

0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 della circonferenza della Terra)

Il limite massimo della distanza consente la massima flessibilità per la costruzione del buffer.

L'errore tra il buffer calcolato e quello teorico è max(tolerance, extents * 1.E-7) dove tolerance = distance * .001. Per ulteriori informazioni su extents, vedere Guida di riferimento ai metodi per il tipo di dati geography.

Esempi

Nell'esempio seguente viene creata un'istanza LineString geography e viene utilizzato STBuffer() per restituire l'area all'interno di 1 metro dell'istanza.

DECLARE @g geography;
SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STBuffer(1).ToString();

Vedere anche

Riferimento

BufferWithTolerance (tipo di dati geography)

Altre risorse

Metodi OGC sulle istanze di geografia