ShortestLineTo (geometry データ型)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric SQL Database
2 つの geometry インスタンスの間の最短距離を表す 2 つの点を持つ LineString インスタンスを返します。 返される LineString インスタンスの長さは、2 つの geometry インスタンスの間の距離です。
構文
.ShortestLineTo ( geometry_other )
引数
geometry_other
呼び出し元の geometry インスタンスとの最短距離を判別するための 2 つ目の geometry インスタンス。
戻り値の型
SQL Server の戻り値の型: geometry
CLR 戻り値の型: SqlGeometry
解説
このメソッドでは、比較対象の 2 つの交差しない geometry インスタンスの境界上にあるエンドポイントを持つ LineString インスタンスが返されます。 返される LineString インスタンスの長さは、2 つの geometry インスタンスの間の最短距離です。 2 つの geometry インスタンスが相互に交差しているとき、空の LineString インスタンスが返されます。
例
A. 交差しないインスタンスに対して ShortestLineTo() を呼び出す
この例では、CircularString
インスタンスと LineString
インスタンスの間の最短距離を調べ、その 2 つの点を結ぶ LineString
インスタンスを返します。
DECLARE @g1 geometry = 'CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)';
DECLARE @g2 geometry = 'LINESTRING(-4 7, 7 10, 3 7)';
SELECT @g1.ShortestLineTo(@g2).ToString();
B. 交差するインスタンスに対して ShortestLineTo() を呼び出す
次の例では、LineString
インスタンスが LineString
インスタンスと交差しているため、空の CircularString
インスタンスが返されます。
DECLARE @g1 geometry = 'CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)';
DECLARE @g2 geometry = 'LINESTRING(0 5, 7 10, 3 7)';
SELECT @g1.ShortestLineTo(@g2).ToString();