geo_intersection_2lines()
Vypočítá průsečík dvou čar nebo více čar.
Syntax
geo_intersection_2lines(
lineString1,
lineString2)
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
lineString1 | dynamic |
✔️ | Spojnicový nebo víceřádkový ve formátu GeoJSON. |
lineString2 | dynamic |
✔️ | Spojnicový nebo víceřádkový ve formátu GeoJSON. |
Návraty
Průnik ve formátu GeoJSON a dynamického datového typu. Pokud jsou řetězec LineString nebo MultiLineString neplatné, dotaz vygeneruje výsledek null.
Poznámka
- Geoprostorové souřadnice jsou interpretovány jako reprezentované systémem souřadnic WGS-84 .
- Geodetické datum používané 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 alespoň dvě položky.
- Souřadnice [zeměpisná délka, zeměpisná šířka] musí být platné, kde zeměpisná délka je reálné číslo v rozsahu [-180; +180] a zeměpisná šířka je reálné číslo v rozsahu [-90, +90].
- Délka hrany musí být menší než 180 stupňů. Zvolí se nejkratší hrana mezi těmito dvěma vrcholy.
Tip
Pro lepší výkon použijte literál LineString nebo MultiLineString.
Příklady
Následující příklad vypočítá průnik mezi dvěma spojnicemi. V tomto případě je výsledkem bod.
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)
Výstup
Průsečíku |
---|
{"type": "Point","coordinates": [-73.979837116670978,40.783989289772165]} |
Následující příklad vypočítá průnik mezi dvěma spojnicemi. V tomto případě je výsledkem čára.
let line = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
print intersection = geo_intersection_2lines(line, line)
Výstup
Průsečíku |
---|
{"type": "LineString","coordinates": [[ -73.978929, 40.785155],[ -73.980903, 40.782621]]} |
Následující dva řádky se neprotínají.
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)
Výstup
Průsečíku |
---|
{"type": "GeometryCollection", "geometries": []} |
Následující příklad vrátí výsledek null, protože jeden z řádků je neplatný.
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))
Výstup
neplatné |
---|
1 |
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