Sdílet prostřednictvím


geo_line_densify()

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

Převede planární čáry nebo víceřádkové hrany na geodesics přidáním přechodných bodů.

Syntaxe

geo_line_densify(tolerance, lineString, [ preserve_crossing ])

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.
tolerance int, long nebo real Definuje maximální vzdálenost v metrech mezi původním planárním okrajem a převedeným geodesickým hraničním řetězcem. Podporované hodnoty jsou v rozsahu [0,1, 10000]. Pokud není zadáno, použije se výchozí hodnota 10 .
preserve_crossing bool Pokud true, zachová hrany přechod přes antimeridian. Pokud není zadáno, použije se výchozí hodnota false .

Návraty

Densified line in the GeoJSON format and of a dynamic data type. Pokud je řádek 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 .

Definice linestringu

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é. Zeměpisná délka musí být reálné číslo v oblasti [-180, +180] a zeměpisná šířka musí být reálné číslo v oblasti [-90, +90].
  • Délka okraje musí být menší než 180 stupňů. Vybere se nejkratší hrana mezi dvěma vrcholy.

Omezení

  • Maximální počet bodů v densifikované přímce je omezen na 10485760.
  • Ukládání čar v dynamickém formátu má omezení velikosti.

Motivace

  • Formát GeoJSON definuje hranu mezi dvěma body jako přímku kartézské přímky při geo_line_densify() použití geodesické čáry.
  • Rozhodnutí o použití geodesických nebo planárních hran může záviset na datové sadě a je zvlášť relevantní v dlouhých hranách.

Příklady

Následující příklad označuje silnici na Ostrově Manhattan. Hrana je krátká a vzdálenost mezi planárním okrajem a jeho geodesickým protějškem je menší než vzdálenost určená tolerancem. Výsledek tak zůstane beze změny.

print densified_line = tostring(geo_line_densify(dynamic({"type":"LineString","coordinates":[[-73.949247, 40.796860],[-73.973017, 40.764323]]})))

Výstup

densified_line
{"type":"LineString","coordinates":[-73.949247, 40.796860], [-73.973017, 40.764323]}

Následující příklad označuje hranu délky ~130 km.

print densified_line = tostring(geo_line_densify(dynamic({"type":"LineString","coordinates":[[50, 50], [51, 51]]})))

Výstup

densified_line
{"type":"LineString","coordinates":[[50;50],[50.125;50.125],[50.25;50.25],[50.375;50.375],[50,5,50,5],[50,625,50,625],[50,75,50,75],[50,875,50,875],[51,51]]}

Následující příklad vrátí výsledek null z důvodu neplatného vstupu souřadnic.

print densified_line = geo_line_densify(dynamic({"type":"LineString","coordinates":[[300,1],[1,1]]}))

Výstup

densified_line

Následující příklad vrátí výsledek null z důvodu neplatného vstupu tolerance.

print densified_line = geo_line_densify(dynamic({"type":"LineString","coordinates":[[1,1],[2,2]]}), 0)

Výstup

densified_line