geo_intersection_2lines()
Berechnet die Schnittmenge von zwei Linien oder Mehrlinien.
Syntax
geo_intersection_2lines(
lineString1,
lineString2)
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Typ | Erforderlich | BESCHREIBUNG |
---|---|---|---|
lineString1 | dynamic |
✔️ | Eine Linie oder mehrzeilige Im GeoJSON-Format. |
lineString2 | dynamic |
✔️ | Eine Linie oder mehrzeilige Im GeoJSON-Format. |
Gibt zurück
Schnittmenge im GeoJSON-Format und eines dynamischen Datentyps. Wenn LineString oder ein MultiLineString ungültig sind, erzeugt die Abfrage ein NULL-Ergebnis.
Hinweis
- Die georäumlichen Koordinaten werden so interpretiert, wie sie durch das Koordinatenreferenzsystem WGS-84 dargestellt werden.
- Das geodätische Datum, das zum Messen der Entfernung auf der Erde verwendet wird, ist eine Kugel. Linienränder sind Geodätik auf der Kugel.
- Wenn Eingabelinienränder gerade kartesische Linien sind, sollten Sie geo_line_densify() verwenden, um planare Kanten in Geodätik zu konvertieren.
LineString-Definition und -Einschränkungen
dynamic({"type": "LineString","coordinates": [[lng_1,lat_1], [lng_2,lat_2],..., [lng_N,lat_N]]})
dynamic({"type": "MultiLineString","coordinates": [[line_1, line_2,..., line_N]]})
- LineString-Koordinatenarray muss mindestens zwei Einträge enthalten.
- Koordinaten [Längengrad, Breitengrad] müssen gültig sein, wenn der Längengrad eine reelle Zahl im Bereich [-180, +180] und breitengrad eine reelle Zahl im Bereich [-90, +90] ist.
- Die Kantenlänge muss kleiner als 180 Grad sein. Die kürzeste Kante zwischen den beiden Scheitelpunkten wird ausgewählt.
Tipp
Verwenden Sie literale LineString oder MultiLineString für eine bessere Leistung.
Beispiele
Im folgenden Beispiel wird die Schnittmenge zwischen zwei Zeilen berechnet. In diesem Fall ist das Ergebnis ein Punkt.
let lineString1 = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[-73.985195,40.788275],[-73.974552,40.779761]]});
print intersection = geo_intersection_2lines(lineString1, lineString2)
Ausgabe
Schnittmenge |
---|
{"type": "Point","coordinates": [-73.979837116670978,40.783989289772165]} |
Im folgenden Beispiel wird die Schnittmenge zwischen zwei Zeilen berechnet. In diesem Fall ist das Ergebnis eine Zeile.
let line = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
print intersection = geo_intersection_2lines(line, line)
Ausgabe
Schnittmenge |
---|
{"type": "LineString","coordinates": [[ -73.978929, 40.785155],[ -73.980903, 40.782621]]} |
Die folgenden beiden Zeilen überschneiden sich nicht.
let lineString1 = dynamic({"type":"LineString","coordinates":[[1, 1],[2, 2]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[3, 3],[4, 4]]});
print intersection = geo_intersection_2lines(lineString1, lineString2)
Ausgabe
Schnittmenge |
---|
{"type": "GeometryCollection", "geometries": []} |
Im folgenden Beispiel wird ein NULL-Ergebnis zurückgegeben, da eine der Zeilen ungültig ist.
let lineString1 = dynamic({"type":"LineString","coordinates":[[1, 1],[2, 2]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[3, 3]]});
print invalid = isnull(geo_intersection_2lines(lineString1, lineString2))
Ausgabe
ungültig |
---|
1 |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für