Udostępnij za pośrednictwem


geo_intersects_2lines()

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Oblicza, czy dwa wiersze czy wielowierszowe przecinają się.

Składnia

geo_intersects_2lines(lineString1,lineString2)

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
lineString1 dynamic ✔️ Wiersz lub wielowierszowy w formacie GeoJSON.
lineString2 dynamic ✔️ Wiersz lub wielowierszowy w formacie GeoJSON.

Zwraca

Wskazuje, czy dwa wiersze lub wielowierszowe przecinają się. Jeśli ciąg lineString lub multiLineString są nieprawidłowe, zapytanie spowoduje wygenerowanie wyniku o wartości null.

Uwaga

Definicja i ograniczenia linestring

dynamic({"type": "LineString","coordinates": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})

dynamic({"type": "MultiLineString","współrzędne": [[line_1, line_2, ..., line_N]]})

  • Tablica współrzędnych LineString musi zawierać co najmniej dwa wpisy.
  • Współrzędne [długość geograficzna, szerokość geograficzna] muszą być prawidłowe, gdzie długość geograficzna jest liczbą rzeczywistą w zakresie [-180, +180], a szerokość geograficzna jest liczbą rzeczywistą w zakresie [-90, +90].
  • Długość krawędzi musi być mniejsza niż 180 stopni. Zostanie wybrana najkrótsza krawędź między dwoma wierzchołkami.

Napiwek

Użyj literału LineString lub MultiLineString, aby uzyskać lepszą wydajność.

Przykłady

Poniższy przykład sprawdza, czy niektóre dwa wiersze literału przecinają się.

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 intersects = geo_intersects_2lines(lineString1, lineString2)

Wyjście

Przecina
Prawda

Poniższy przykład znajduje wszystkie drogi w tabeli dróg GeoJSON w Nowym Jorku, która przecina niektóre interesujące linie.

let my_road = dynamic({"type":"LineString","coordinates":[[-73.97892951965332,40.78515573551921],[-73.98090362548828,40.78262115769851]]});
NY_Manhattan_Roads
| project name = features.properties.Label, road = features.geometry
| where geo_intersects_2lines(road, my_road)
| project name

Wyjście

name
Broadway
W 78 st
W 79 st
W 80th St
W 81st St

Poniższy przykład zwróci wynik o wartości null, ponieważ jeden z wierszy jest nieprawidłowy.

let lineString1 = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[-73.985195,40.788275]]});
print isnull(geo_intersects_2lines(lineString1, lineString2))

Wyjście

print_0
Prawda