次の方法で共有


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();

参照

ShortestLineTo (geography データ型)