geo_line_buffer()
Kiszámítja a sokszöget vagy többpógonyt, amely a bemeneti vonal vagy a többsoros vonal adott sugarán belüli összes pontot tartalmazza a Földön.
Syntax
geo_line_buffer(
lineString,
Sugár,
Tolerancia)
További információ a szintaxis konvenciókról.
Paraméterek
Név | Típus | Kötelező | Leírás |
---|---|---|---|
lineString | dynamic |
✔️ | Egy LineString vagy MultiLineString GeoJSON formátumban. |
Sugár | real |
✔️ | Puffer sugara méterben. Az érvényes értéknek pozitívnak kell lennie. |
Tolerancia | real |
Meghatározza a mérők tűréshatárát, amely meghatározza, hogy egy sokszög mennyiben térhet el az ideális sugártól. Ha nincs meghatározva, a rendszer az alapértelmezett értéket 10 használja. A tűrés nem lehet kisebb, mint a sugár 0,0001%-a. Ha a radius-nál nagyobb tűrést ad meg, a lehető legnagyobb értékre csökkenti a tűréshatárt a sugár alatt. |
Válaszok
Sokszög vagy többpolygon a bemeneti LineString vagy MultiLineString körül. Ha a koordináták vagy a sugár vagy a tűrés érvénytelen, a lekérdezés null eredményt ad.
Megjegyzés
- A térinformatikai koordinátákat a WGS-84 koordináta-referenciarendszer képviseli.
- A Föld távolságának mérésére használt geodéziai datum egy gömb.
- Ha a bemeneti vonal élei egyenes cartesian vonalak, fontolja meg a geo_line_densify() használatát a planáris élek geodéziaiká alakításához.
- A vonalak végfejei kerekek.
- A sorok mindkét oldala pufferelt.
LineString-definíció és megkötések
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]]})
- A LineString koordináta-tömbnek legalább két bejegyzést kell tartalmaznia.
- A koordinátáknak [hosszúság, szélesség] érvényesnek kell lenniük, ha a hosszúság valós szám a(z) [-180, +180] tartományban, a szélesség pedig a [-90, +90] tartomány valós száma.
- Az élhossznak 180 foknál kisebbnek kell lennie. A két csúcspont közötti legrövidebb él lesz kiválasztva.
Példák
A következő lekérdezés a vonal körüli sokszöget számítja ki 4 méter sugarú és 0,1 méteres tűréssel
let line = dynamic({"type":"LineString","coordinates":[[-80.66634997047466,24.894526340592122],[-80.67373241820246,24.890808090321286]]});
print buffer = geo_line_buffer(line, 4, 0.1)
Puffer |
---|
{"type": "Sokszög", "koordináták": [ ... ]} |
Az alábbi lekérdezés kiszámítja a puffert az egyes sorok körül, és egyesíti az eredményeket
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": "Sokszög","koordináták": [ ... ]} |
Az alábbi példa igaz értéket ad vissza érvénytelen sor miatt.
print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString"}), 5))
Puffer |
---|
Igaz |
Az alábbi példa igaz értéket ad vissza érvénytelen sugár miatt.
print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString","coordinates":[[0,0],[1,1]]}), 0))
Puffer |
---|
Igaz |
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: