Share via


geo_point_in_circle()

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

Syntax

geo_point_in_circle(, p_longitude, p_latitude, pc_longitude, pc_latitudec_radius)

Más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido 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 coordenadas geoespaciales 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 .
  • La referencia geodética utilizada 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 definidas 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 a menos de 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 a 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 cercanas de taxis de la ciudad de Nueva York, 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