Partilhar via


geo_point_in_circle()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Calcula se as coordenadas geoespaciais estão dentro de um círculo na Terra.

Sintaxe

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

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
p_longitude real ✔️ Valor de longitude de coordenadas geoespaciais em graus. O valor válido é um número real e está no intervalo [-180, +180].
p_latitude real ✔️ Valor de latitude de coordenadas geoespaciais em graus. O valor válido é um número real e está no intervalo [-90, +90].
pc_longitude real ✔️ Valor de longitude da coordenada geoespacial do centro do círculo em graus. O valor válido é um número real e está no intervalo [-180, +180].
pc_latitude real ✔️ valor de latitude da coordenada geoespacial do centro do círculo em graus. O valor válido é um número real e está no intervalo [-90, +90].
c_radius real ✔️ Raio do círculo em metros. O valor válido deve ser positivo.

Devoluções

Indica se as coordenadas geoespaciais estão dentro de um círculo. Se as coordenadas ou o círculo forem inválidos, a consulta produzirá um resultado nulo.

Observação

  • As coordenadas geoespaciais são interpretadas como representadas pelo sistema de referência de coordenadas WGS-84 .
  • O dado geodésico usado para medir a distância na Terra é uma esfera.
  • Um círculo é uma tampa esférica na Terra. O raio da tampa é medido ao longo da superfície da esfera.

Exemplos

O exemplo a seguir localiza todos os lugares na área definida pelo seguinte círculo: Raio de 18 km, centro nas coordenadas [-122.317404, 47.609119].

Captura de tela de um mapa com lugares a 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

Saída

lugar
Seattle
Kirkland
Redmond

O exemplo a seguir localiza eventos de tempestade em Orlando. Os eventos são filtrados por 100 km dentro das coordenadas de Orlando e agregados por tipo de evento e 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

Saída

Captura de tela de eventos de tempestade em Orlando renderizados com pontos de gráfico de pizza em um mapa.

O exemplo a seguir mostra os embarques de táxi da cidade de Nova York a 10 metros de um local específico. Os captadores relevantes são agregados por 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)

Saída

Captura de tela do mapa renderizado mostrando as coletas de táxi próximas da cidade de Nova York, conforme definido na consulta.

O exemplo a seguir retorna true.

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

Saída

in_circle
true

O exemplo a seguir retorna false.

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

Saída

in_circle
false

O exemplo a seguir retorna um resultado nulo devido à entrada de coordenadas inválida.

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

Saída

in_circle

O exemplo a seguir retorna um resultado nulo devido à entrada de raio de círculo inválida.

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

Saída

in_circle