Sdílet prostřednictvím


geo_line_buffer()

Platí pro: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Vypočítá mnohoúhelník nebo multipolygon, který obsahuje všechny body v daném poloměru vstupní čáry nebo víceřádkové čáry na Zemi.

Syntaxe

geo_line_buffer(tolerance poloměru, , čáry)

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
lineString dynamic ✔️ A LineString nebo MultiLineString ve formátu GeoJSON.
poloměr real ✔️ Poloměr vyrovnávací paměti v metrech. Platná hodnota musí být kladná.
tolerance real Definuje toleranci v metrech, která určuje, kolik mnohoúhelníku se může odcházet od ideálního poloměru. Pokud není zadáno, použije se výchozí hodnota 10 . Tolerance nesmí být nižší než 0,0001 % poloměru. Určení tolerance větší než poloměr snižuje toleranci na největší možnou hodnotu pod poloměrem.

Návraty

Mnohoúhelník nebo MultiPolygon kolem vstupního řetězce LineString nebo MultiLineString. Pokud jsou souřadnice nebo poloměr nebo tolerance neplatné, dotaz vytvoří výsledek null.

Poznámka:

  • Geoprostorové souřadnice jsou interpretovány jako reprezentované referenčním systémem souřadnic WGS-84 .
  • Geodetické datum použité k měření vzdálenosti na Zemi je sféra.
  • Pokud jsou hrany vstupní čáry rovné kartézské čáry, zvažte použití geo_line_densify() k převodu planárních hran na geodesické čáry.
  • Koncová zakončení čar jsou zaokrouhlená.
  • Obě strany čar se ukládají do vyrovnávací paměti.

Definice a omezení řetězce řádků

dynamic({"type": "LineString";"souřadnice": [[lng_1;lat_1], [lng_2;lat_2], ...; [lng_N;lat_N]]})

dynamic({"type": "MultiLineString";"souřadnice": [[line_1; line_2; ..., line_N]})

  • Matice souřadnic linestringu musí obsahovat alespoň dvě položky.
  • Souřadnice [zeměpisná délka, zeměpisná šířka] musí být platné, pokud je zeměpisná délka skutečným číslem v rozsahu [-180, +180] a zeměpisná šířka je reálné číslo v rozsahu [-90, +90].
  • Délka okraje musí být menší než 180 stupňů. Vybere se nejkratší hrana mezi dvěma vrcholy.

Příklady

Následující dotaz vypočítá mnohoúhelník kolem čáry s poloměrem 4 metrů a 0,1 tolerance měřiče.

let line = dynamic({"type":"LineString","coordinates":[[-80.66634997047466,24.894526340592122],[-80.67373241820246,24.890808090321286]]});
print buffer = geo_line_buffer(line, 4, 0.1)
vyrovnávací paměť
{"type": "Mnohoúhelník", "souřadnice": [ ... ]}

Následující dotaz vypočítá vyrovnávací paměť kolem každého řádku a sjednocuje výsledek.

datatable(line:dynamic)
[
    dynamic({"type":"LineString","coordinates":[[14.429214068940496,50.10043066548272],[14.431184174126173,50.10046525983731]]}),
    dynamic({"type":"LineString","coordinates":[[14.43030222687753,50.100780677801936],[14.4303847111523,50.10020274910934]]})
]
| project buffer = geo_line_buffer(line, 2, 0.1)
| summarize polygons = make_list(buffer)
| project result = geo_union_polygons_array(polygons)
result
{"type": "Mnohoúhelník","souřadnice": [ ... ]}

Následující příklad vrátí hodnotu true, protože je neplatný řádek.

print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString"}), 5))
vyrovnávací paměť
True

Následující příklad vrátí hodnotu true kvůli neplatnému poloměru.

print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString","coordinates":[[0,0],[1,1]]}), 0))
vyrovnávací paměť
Pravda