Compartir a través de


geo_point_in_circle()

Se aplica a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Calcula si las coordenadas geoespaciales están dentro de un círculo en la Tierra.

Sintaxis

geo_point_in_circle(, p_longitude p_latitude, pc_longitude, pc_latitude c_radius, )

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

Parámetros

Nombre Type Obligatorio Descripción
p_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].
p_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].
pc_longitude real ✔️ Valor de longitud de coordenada geoespacial del centro del círculo en grados. El valor válido es un número real y en el intervalo [-180, +180].
pc_latitude real ✔️ círculo centro geoespacial valor de latitud de coordenadas geoespaciales en grados. El valor válido es un número real y en el intervalo [-90, +90].
c_radius real ✔️ Radio de círculo en metros. El valor válido debe ser positivo.

Devoluciones

Indica si las coordenadas geoespaciales están dentro de un círculo. Si las coordenadas o el círculo no son válidos, la consulta genera un resultado NULO.

Nota:

  • Las coordenadas geoespaciales se interpretan como representadas por el sistema de referencia de coordenadas WGS-84 .
  • El dato geodético utilizado para medir la distancia en la Tierra es una esfera.
  • Un círculo es un capuchón esférico en la Tierra. El radio del extremo se mide a lo largo de la superficie de la esfera.

Ejemplos

En el ejemplo siguiente se buscan todos los lugares del área definida por el siguiente círculo: Radio de 18 km, centro en las coordenadas [-122.317404, 47.609119].

Captura de pantalla de un mapa con lugares en 18 km de Seattle.

datatable(longitude:real, latitude:real, place:string)
[
    real(-122.317404), 47.609119, 'Seattle',                   // In circle 
    real(-123.497688), 47.458098, 'Olympic National Forest',   // In exterior of circle  
    real(-122.201741), 47.677084, 'Kirkland',                  // In circle
    real(-122.443663), 47.247092, 'Tacoma',                    // In exterior of circle
    real(-122.121975), 47.671345, 'Redmond',                   // In circle
]
| where geo_point_in_circle(longitude, latitude, -122.317404, 47.609119, 18000)
| project place

Salida

lugar
Seattle
Kirkland
Redmond

En el ejemplo siguiente se buscan eventos de tormenta en Orlando. Los eventos se filtran por 100 km dentro de las coordenadas de Orlando y se agregan por tipo de evento y hash.

StormEvents
| project BeginLon, BeginLat, EventType
| where geo_point_in_circle(BeginLon, BeginLat, real(-81.3891), 28.5346, 1000 * 100)
| summarize count() by EventType, hash = geo_point_to_s2cell(BeginLon, BeginLat)
| project geo_s2cell_to_central_point(hash), EventType, count_
| render piechart with (kind=map) // map pie rendering available in Kusto Explorer desktop

Salida

Captura de pantalla de los eventos de tormenta en Orlando representados con puntos de gráfico circular en un mapa.

En el ejemplo siguiente se muestran las recogidas de taxis de la ciudad de Nueva York dentro de 10 metros de una ubicación determinada. Las recogidas pertinentes se agregan mediante hash.

nyc_taxi
| project pickup_longitude, pickup_latitude
| where geo_point_in_circle( pickup_longitude, pickup_latitude, real(-73.9928), 40.7429, 10)
| summarize by hash = geo_point_to_s2cell(pickup_longitude, pickup_latitude, 22)
| project geo_s2cell_to_central_point(hash)
| render scatterchart with (kind = map)

Salida

Captura de pantalla del mapa representado que muestra las recogidas de taxis de la ciudad de Nueva York cercanas, tal como se define en la consulta.

El siguiente ejemplo devuelve true.

print in_circle = geo_point_in_circle(-122.143564, 47.535677, -122.100896, 47.527351, 3500)

Salida

in_circle
true

El siguiente ejemplo devuelve false.

print in_circle = geo_point_in_circle(-122.137575, 47.630683, -122.100896, 47.527351, 3500)

Salida

in_circle
false

En el ejemplo siguiente se devuelve un resultado NULO debido a la entrada de coordenadas no válida.

print in_circle = geo_point_in_circle(200, 1, 1, 1, 1)

Salida

in_circle

En el ejemplo siguiente se devuelve un resultado NULO debido a la entrada de radio de círculo no válida.

print in_circle = geo_point_in_circle(1, 1, 1, 1, -1)

Salida

in_circle