geo_line_simplify()
Zjednodušuje čáru nebo víceřádku nahrazením téměř rovných řetězců krátkých hran jednou dlouhou hranou na Zemi.
Syntax
geo_line_simplify(
Linestring,
Tolerance)
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
Linestring | dynamic |
✔️ | LineString nebo MultiLineString ve formátu GeoJSON. |
Tolerance | int, long nebo real | Definuje minimální vzdálenost v metrech mezi libovolnými dvěma vrcholy. Podporované hodnoty jsou v rozsahu [0, ~7 800 000 metrů]. Pokud není zadán, použije se výchozí hodnota 10 . |
Návraty
Zjednodušená čára nebo víceřádka ve formátu GeoJSON a dynamického datového typu, bez dvou vrcholů se vzdáleností menší než tolerance. Pokud je řádek nebo tolerance 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.
- Pokud je vstup víceřádkový a obsahuje více než jeden řádek, výsledkem bude zjednodušení sjednocení řádků.
- Vysoká tolerance může způsobit, že malá čára zmizí.
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.
Příklady
Následující příklad zjednodušuje čáru odebráním vrcholů, které jsou od sebe vzdáleny 10 metrů.
let line = dynamic({"type":"LineString","coordinates":[[-73.97033169865608,40.789063020152824],[-73.97039607167244,40.78897975920816],[-73.9704617857933,40.78888837512432],[-73.97052884101868,40.7887949601531],[-73.9706052839756,40.788698498903564],[-73.97065222263336,40.78862640672032],[-73.97072866559029,40.78852791445617],[-73.97079303860664,40.788434498977836]]});
print simplified = geo_line_simplify(line, 10)
Výstup
Zjednodušené |
---|
{"type": "LineString", "coordinates": [[-73.97033169865608, 40.789063020152824], [-73.97079303860664, 40.78843498977836]]} |
Následující příklad zjednodušuje čáry a kombinuje výsledky do kolekce geometrie GeoJSON.
NY_Manhattan_Roads
| project road = features.geometry
| project road_simplified = geo_line_simplify(road, 100)
| summarize roads_lst = make_list(road_simplified)
| project geojson = bag_pack("type", "Feature","geometry", bag_pack("type", "GeometryCollection", "geometries", roads_lst), "properties", bag_pack("name", "roads"))
Výstup
geojson |
---|
{"type": "Feature", "geometry": {"type": "GeometryCollection", "geometries": [ ... ]}, "properties": {"name": "roads"}} |
Následující příklad zjednodušuje řádky a sjednocuje výsledek.
NY_Manhattan_Roads
| project road = features.geometry
| project road_simplified = geo_line_simplify(road, 100)
| summarize roads_lst = make_list(road_simplified)
| project roads = geo_union_lines_array(roads_lst)
Výstup
Silnice |
---|
{"type": "MultiLineString", "coordinates": [ ... ]} |
Následující příklad vrátí hodnotu True z důvodu neplatného řádku.
print is_invalid_line = isnull(geo_line_simplify(dynamic({"type":"LineString","coordinates":[[1, 1]]})))
Výstup
is_invalid_line |
---|
Ano |
Následující příklad vrátí hodnotu True z důvodu neplatné tolerance.
print is_invalid_line = isnull(geo_line_simplify(dynamic({"type":"LineString","coordinates":[[1, 1],[2,2]]}), -1))
Výstup
is_invalid_line |
---|
Ano |
Následující příklad vrátí hodnotu True, protože vysoká tolerance způsobí, že zmizí malá čára.
print is_invalid_line = isnull(geo_line_simplify(dynamic({"type":"LineString","coordinates":[[1.1, 1.1],[1.2,1.2]]}), 100000))
Výstup
is_invalid_line |
---|
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