Share via


geo_point_buffer()

Calcula el polígono que contiene todos los puntos dentro del radio especificado del punto en la Tierra.

Syntax

geo_point_buffer(Longitud,Latitud,Radio,Tolerancia)

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
longitude real ✔️ Valor de longitud de coordenada geoespacial en grados. El valor válido es un número real y en el intervalo [-180, +180].
latitude real ✔️ Valor de latitud de coordenada geoespacial en grados. El valor válido es un número real y en el intervalo [-90, +90].
Radio real ✔️ Radio de búfer en metros. El valor válido debe ser positivo.
tolerance real Define la tolerancia en metros que determina cuánto un polígono puede desviarse del radio ideal. Si no se especifica, se usa el valor predeterminado 10. La tolerancia no debe ser inferior al 0,0001 % del radio. Si se especifica tolerancia mayor que radius, se reduce la tolerancia al mayor valor posible por debajo del radio.

Devoluciones

Polígono alrededor del punto de entrada. Si las coordenadas o el radio o la tolerancia no son válidas, la consulta genera un resultado nulo.

Nota

  • Las coordenadas geoespaciales se interpretan como representadas por el sistema de referencia de coordenadas WGS-84 .
  • La referencia geodética utilizada para medir la distancia en la Tierra es una esfera.

Ejemplos

La consulta siguiente calcula el polígono alrededor de las coordenadas [-115.1745008278, 36.1497251277], con radio de 20km.

print buffer = geo_point_buffer(-115.1745008278, 36.1497251277, 20000)
buffer
{"type": "Polygon","coordinates": [ ... ]}

La consulta siguiente calcula el búfer alrededor de cada punto y unifica el resultado.

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)
resultado
{"type": "MultiPolygon","coordinates": [ ... ]}

En el ejemplo siguiente se devuelve true, debido a un punto no válido.

print result = isnull(geo_point_buffer(200, 1,0.1))
resultado
True

En el ejemplo siguiente se devuelve true, debido a un radio no válido.

print result = isnull(geo_point_buffer(10, 10, -1))
resultado
True