geo_point_buffer()
Applies to: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Calculates polygon that contains all points within the given radius of the point on Earth.
Syntax
geo_point_buffer(
longitude,
latitude,
radius,
tolerance)
Learn more about syntax conventions.
Parameters
Name | Type | Required | Description |
---|---|---|---|
longitude | real |
✔️ | Geospatial coordinate longitude value in degrees. Valid value is a real number and in the range [-180, +180]. |
latitude | real |
✔️ | Geospatial coordinate latitude value in degrees. Valid value is a real number and in the range [-90, +90]. |
radius | real |
✔️ | Buffer radius in meters. Valid value must be positive. |
tolerance | real |
Defines the tolerance in meters that determines how much a polygon can deviate from the ideal radius. If unspecified, the default value 10 is used. Tolerance should be no lower than 0.0001% of the radius. Specifying tolerance bigger than radius lowers the tolerance to biggest possible value below the radius. |
Returns
Polygon around the input point. If the coordinates or radius or tolerance is invalid, the query produces a null result.
Note
- The geospatial coordinates are interpreted as represented by the WGS-84 coordinate reference system.
- The geodetic datum used to measure distance on Earth is a sphere.
Examples
The following query calculates polygon around [-115.1745008278, 36.1497251277] coordinates, with 20km radius.
print buffer = geo_point_buffer(-115.1745008278, 36.1497251277, 20000)
buffer |
---|
{"type": "Polygon","coordinates": [ ... ]} |
The following query calculates buffer around each point and unifies result
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": [ ... ]} |
The following example returns true, due to invalid point.
print result = isnull(geo_point_buffer(200, 1,0.1))
result |
---|
True |
The following example returns true, due to invalid radius.
print result = isnull(geo_point_buffer(10, 10, -1))
result |
---|
True |