Sdílet prostřednictvím


geo_point_buffer()

Vypočítá mnohoúhelník, který obsahuje všechny body v daném poloměru bodu na Zemi.

Syntax

geo_point_buffer(Délky,Šířky,Radius,Tolerance)

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

Parametry

Název Typ Vyžadováno Popis
Délky real ✔️ Hodnota geoprostorové souřadnice zeměpisné délky ve stupních Platná hodnota je reálné číslo v rozsahu [-180, +180].
zeměpisná šířka real ✔️ Hodnota zeměpisné šířky geoprostorových souřadnic ve stupních Platná hodnota je reálné číslo v rozsahu [-90, +90].
Radius real ✔️ Poloměr vyrovnávací paměti v metrech. Platná hodnota musí být kladná.
Tolerance real Definuje toleranci v metrech, která určuje, jak moc se mnohoúhelník může odchylovat od ideálního poloměru. Pokud není zadán, použije se výchozí hodnota 10 . Tolerance by neměla být menší než 0,0001 % poloměru. Zadáním tolerance větší než poloměr snížíte toleranci na největší možnou hodnotu pod poloměrem.

Návraty

Mnohoúhelník kolem vstupního bodu. Pokud jsou souřadnice, poloměr nebo tolerance neplatné, dotaz vytvoří 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.

Příklady

Následující dotaz vypočítá mnohoúhelník kolem souřadnic [-115.1745008278, 36.1497251277] s poloměrem 20 km.

print buffer = geo_point_buffer(-115.1745008278, 36.1497251277, 20000)
Vyrovnávací paměti
{"type": "Polygon","coordinates": [ ... ]}

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

datatable(longitude:real, latitude:real, radius:real)
[
    real(-80.3212217992616), 25.268683367546604, 5000,
    real(-80.81717403605833), 24.82658441221962, 3000
]
| project buffer = geo_point_buffer(longitude, latitude, radius)
| summarize polygons = make_list(buffer)
| project result = geo_union_polygons_array(polygons)
result
{"type": "MultiPolygon","coordinates": [ ... ]}

Následující příklad vrátí hodnotu true z důvodu neplatného bodu.

print result = isnull(geo_point_buffer(200, 1,0.1))
result
Ano

Následující příklad vrátí hodnotu true z důvodu neplatného poloměru.

print result = isnull(geo_point_buffer(10, 10, -1))
result
Ano