ShortestLineTo (geography-Datentyp)
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 )
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
Hinweise
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 geography überschneiden, wird eine leere Instanz von LineString 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();