Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vrátí zeměpisnou instanci, která představuje množinu všech bodů, jejichž vzdálenost od volající geografické instance je menší nebo rovna parametru vzdálenosti .
Syntax
.BufferWithCurves ( distance )
Arguments
vzdálenost
Je plovoucí hodnota označující maximální vzdálenost, kterou body tvořící vyrovnávací paměť mohou být z geografické instance.
Návratové typy
Návratový typ SQL Serveru: zeměpisná oblast
Návratový typ CLR: SqlGeography
Exceptions
Následující kritéria vyvolá výjimku ArgumentException.
Metodě se nepředá žádný parametr, například
@g.BufferWithCurves()Metodě se předá nečíselný parametr, například
@g.BufferWithCurves('a')Metodě se předá hodnota NULL, například
@g.BufferWithCurves(NULL)
Remarks
Následující tabulka ukazuje výsledky vrácené pro různé hodnoty vzdálenosti.
| Hodnota vzdálenosti | Rozměry typu | Vrácený prostorový typ |
|---|---|---|
| vzdálenost < 0 | Nula nebo jedna | Prázdná instance GeometryCollection |
| vzdálenost < 0 | Dvě nebo více |
A CurvePolygon nebo GeometryCollection instance s negativní vyrovnávací pamětí. Poznámka: Záporná vyrovnávací paměť může vytvořit prázdnou geometryCollection |
| vzdálenost = 0 | Všechny rozměry | Kopie vyvolání geografické instance |
| vzdálenost > 0 | Všechny rozměry | Instance CurvePolygon nebo GeometryCollection |
Note
Vzhledem k tomu, že vzdálenost je plovoucí, může být ve výpočtech velmi malá hodnota rovna nule. Pokud k tomu dojde, vrátí se kopie volající geografické instance.
Pokud je řetězcový parametr předán metodě, pak bude převeden na float nebo vyvolá ArgumentException.
Examples
A. Volání BufferWithCurves() s hodnotou < parametru 0 v jednorozměrné geografické instanci
Následující příklad vrátí prázdnou GeometryCollection instanci:
DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
SELECT @g.BufferWithCurves(-1).ToString();
B. Volání BufferWithCurves() s hodnotou < parametru 0 v dvojrozměrné geografické instanci
Následující příklad vrátí CurvePolygon instanci se zápornou vyrovnávací pamětí:
DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
SELECT @g.BufferWithCurves(-1).ToString()
C. Volání BufferWithCurves() s hodnotou < parametru 0, která vrací prázdnou GeometryCollection
Následující příklad ukazuje, co nastane, když se parametr vzdálenosti rovná -2:
DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
SELECT @g.BufferWithCurves(-2).ToString();
Tento příkaz SELECT vrátí GEOMETRYCOLLECTION EMPTY
D. Volání BufferWithCurves() s hodnotou parametru = 0
Následující příklad vrátí kopii volající geografické instance:
DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
SELECT @g.BufferWithCurves(0).ToString();
E. Volání BufferWithCurves() s nenulovou hodnotou parametru, která je extrémně malá
Následující příklad také vrátí kopii volající geografické instance:
DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
DECLARE @distance float = 1e-20;
SELECT @g.BufferWithCurves(@distance).ToString();
F. Volání BufferWithCurves() s hodnotou > parametru 0
Následující příklad vrátí CurvePolygon instanci:
DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
SELECT @g.BufferWithCurves(2).ToString();
G. Předání platného parametru řetězce
Následující příklad vrátí stejnou CurvePolygon instanci, jakou jsme zmínili dříve, ale řetězcový parametr se předá metodě:
DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
SELECT @g.BufferWithCurves('2').ToString();
H. Předání neplatného parametru řetězce
Následující příklad vyvolá chybu:
DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)'
SELECT @g.BufferWithCurves('a').ToString();
Všimněte si, že předchozí dva příklady předaly řetězcový literál metodě BufferWithCurves() . První příklad funguje, protože řetězcový literál lze převést na číselnou hodnotu. Druhý příklad však vyvolá výjimku ArgumentException.
Viz také
Rozšířené metody v zeměpisných instancích
BufferWithCurves (datový typ geometrie)