Freigeben über


ShortestLineTo (geometry-Datentyp)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz

Gibt eine LineString -Instanz mit zwei Punkten zurück, die den kürzesten Abstand zwischen den zwei geometry -Instanzen darstellen. Die Länge der LineString -Instanz, die zurückgegeben wurde, entspricht dem Abstand zwischen den beiden geometry -Instanzen.

Syntax

  
.ShortestLineTo ( geometry_other )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

geometry_other
Die zweite geometry -Instanz, für die von der aufrufenden geometry -Instanz versucht wird, den kürzesten Abstand zu bestimmen.

Rückgabetypen

SQL Server-Rückgabetyp: geometry

CLR-Rückgabetyp: SqlGeometry

Hinweise

Die Methode gibt eine LineString -Instanz mit Endpunkten zurück, die auf den Rändern der beiden Instanzen von geometry liegen, die verglichen werden und sich nicht überschneiden. Die Länge der LineString -Instanz, die zurückgegeben wurde, entspricht dem geringsten Abstand zwischen den beiden geometry -Instanzen. Wenn sich die beiden Instanzen von LineString überschneiden, wird eine leere Instanz von geometry zurückgegeben.

Beispiele

A. Aufrufen von ShortestLineTo() für sich nicht überschneidende Instanzen

In diesem Beispiel wird der geringste Abstand zwischen einer Instanz von CircularString und einer Instanz von LineString ermittelt, und die Instanz von LineString wird zurückgegeben, die die beiden Punkte verbindet:

 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. Aufrufen von ShortestLineTo() für sich überschneidende Instanzen

In diesem Beispiel wird eine leere Instanz von LineString zurückgegeben, da die sich die Instanz von LineString und die Instanz von CircularString überschneiden:

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

Weitere Informationen

ShortestLineTo (geography-Datentyp)