geo_line_densify()
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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 |
---|