ShortestLineTo (geography データ型)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric SQL Database
2 つの geography インスタンスの間の最短距離を表す 2 つの点を持つ LineString インスタンスを返します。 返される LineString インスタンスの長さは、2 つの geography インスタンスの間の距離です。
構文
.ShortestLineTo ( geography_other )
引数
geography_other
呼び出し元の geography インスタンスとの最短距離を調べる 2 つ目の geography インスタンスを指定します。
戻り値の型
SQL Server 戻り値の型: geography
CLR の戻り値の型: SqlGeography
解説
このメソッドでは、比較対象の 2 つの交差しない geography インスタンスの境界上にあるエンドポイントを持つ LineString インスタンスが返されます。 返される LineString インスタンスの長さは、2 つの geography インスタンスの間の最短距離です。 2 つの geography インスタンスが相互に交差している場合、空の LineString インスタンスが返されます。
例
A. 交差しないインスタンスに対して ShortestLineTo() を呼び出す
この例では、CircularString
インスタンスと LineString
インスタンスの間の最短距離を調べ、その 2 つの点を結ぶ LineString
インスタンスを返します。
DECLARE @g1 geography = 'CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
DECLARE @g2 geography = 'LINESTRING(-119.119263 46.183634, -119.273071 47.107523, -120.640869 47.569114, -122.200928 47.454094)';
SELECT @g1.ShortestLineTo(@g2).ToString();
B. 交差するインスタンスに対して ShortestLineTo() を呼び出す
次の例では、LineString
インスタンスが LineString
インスタンスと交差しているため、空の CircularString
インスタンスが返されます。
DECLARE @g1 geography = 'CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
DECLARE @g2 geography = 'LINESTRING(-119.119263 46.183634, -119.273071 47.107523, -120.640869 47.569114, -122.348 47.649, -122.681 47.655)';
SELECT @g1.ShortestLineTo(@g2).ToString();