Freigeben über


ShortestLineTo (geography-Datentyp)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

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

Syntax

  
.ShortestLineTo ( geography_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

geography_other
Gibt die zweite geography -Instanz an, für die von der aufrufenden geography -Instanz versucht wird, den kürzesten Abstand zu bestimmen.

Rückgabetypen

SQL Server-Rückgabetyp: geography

CLR-Rückgabetyp: SqlGeography

Bemerkungen

Die Methode gibt eine LineString -Instanz mit Endpunkten zurück, die auf den Rändern der beiden Instanzen von geography 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 geography -Instanzen. Wenn sich die beiden Instanzen von LineString überschneiden, wird eine leere Instanz von geography 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 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. 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 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();

Weitere Informationen

Erweiterte Methoden für geography-Instanzen
ShortestLineTo (geometry-Datentyp)