geo_intersects_2lines()
Vypočítá, jestli se protínají dvě čáry nebo víceřádky.
Syntax
geo_intersects_2lines(
lineString1,
lineString2)
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
lineString1 | dynamic |
✔️ | Čára nebo víceřádka ve formátu GeoJSON. |
lineString2 | dynamic |
✔️ | Čára nebo víceřádka ve formátu GeoJSON. |
Návraty
Označuje, jestli se protínají dvě čáry nebo víceřádky. Pokud jsou řetězec řádku nebo multiLineString neplatné, dotaz vytvoří výsledek null.
Poznámka
- Geoprostorové souřadnice jsou interpretovány jako reprezentované systémem souřadnic WGS-84 .
- Geodetickým datem, který se používá k měření vzdálenosti na Zemi, je koule. Hrany čar jsou geodézie na kouli.
- Pokud jsou hrany vstupních čar rovné kartézské čáry, zvažte použití geo_line_densify() k převodu rovinných okrajů na geodézie.
Definice a omezení linestringu
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]]})
- Pole souřadnic LineString musí obsahovat aspoň dvě položky.
- Souřadnice [zeměpisná délka, zeměpisná šířka] musí být platné, pokud zeměpisná délka je reálné číslo v oblasti [-180; +180] a zeměpisná šířka je reálné číslo v oblasti [-90, +90].
- Délka hrany musí být menší než 180 stupňů. Zvolí se nejkratší hrana mezi dvěma vrcholy.
Tip
K lepšímu výkonu použijte literál LineString nebo MultiLineString.
Příklady
Následující příklad zkontroluje, jestli se některé dva řádky literálu protínají.
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)
Výstup
Protíná |
---|
Ano |
Následující příklad najde všechny cesty v tabulce NYC GeoJSON roads, která se protíná s některými liniemi zájmu.
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
Výstup
name |
---|
Broadway |
W 78. st |
W 79. st |
W 80th St |
W 81st St |
Následující příklad vrátí výsledek null, protože jeden z řádků je neplatný.
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))
Výstup
print_0 |
---|
Ano |
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro