geo_intersects_2lines()
Oblicza, czy dwa wiersze czy wielowierszowe przecinają się.
Składnia
geo_intersects_2lines(
lineString1,
lineString2)
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
lineString1 | dynamic |
✔️ | Wiersz lub wielowierszowy w formacie GeoJSON. |
lineString2 | dynamic |
✔️ | Wiersz lub wielowierszowy w formacie GeoJSON. |
Zwraca
Wskazuje, czy dwa wiersze czy wielowierszowe przecinają się. Jeśli ciąg lineString lub multiLineString są nieprawidłowe, zapytanie spowoduje wygenerowanie wyniku null.
Uwaga
- Współrzędne geoprzestrzenne są interpretowane jako reprezentowane przez system odniesienia współrzędnych WGS-84 .
- Geodetyczne datum używane do mierzenia odległości na Ziemi jest sferą. Krawędzie linii są geodesics na sferze.
- Jeśli krawędzie linii wejściowej są liniami kartezjańskimi, rozważ użycie geo_line_densify(), aby przekonwertować krawędzie planarne na geodesy.
Definicja i ograniczenia lineString
dynamic({"type": "LineString","współrzędne": [[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.
Porada
Aby uzyskać lepszą wydajność, użyj literału LineString lub MultiLineString.
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)
Dane wyjściowe
Przecina |
---|
Prawda |
Poniższy przykład znajduje wszystkie drogi w tabeli dróg GeoJSON NYC, która przecina się z niektórymi liniami zainteresowania.
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
Dane wyjściowe
name |
---|
Broadway |
W 78 st. |
W 79 st |
W 80 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))
Dane wyjściowe
print_0 |
---|
Prawda |
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla