Share via


geo_distance_2points()

Calcula a distância mais curta em metros entre duas coordenadas geoespaciais na Terra.

Syntax

geo_distance_2points(, p1_longitude, p1_latitude, p2_longitudep2_latitude)

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Necessário Descrição
p1_longitude real ✔️ O valor de longitude em graus da primeira coordenada geoespacial. Um valor válido está no intervalo [-180, +180].
p1_latitude real ✔️ O valor de latitude em graus da primeira coordenada geoespacial. Um valor válido está no intervalo [-90, +90].
p2_longitude real ✔️ O valor de longitude em graus da segunda coordenada geoespacial. Um valor válido está no intervalo [-180, +180].
p2_latitude real ✔️ O valor de latitude em graus da segunda coordenada geoespacial. Um valor válido está no intervalo [-90, +90].

Devoluções

A distância mais curta, em metros, entre duas localizações geográficas na Terra. Se as coordenadas forem inválidas, a consulta produz um resultado nulo.

Nota

  • As coordenadas geoespaciais são interpretadas como representadas pelo sistema de referência de coordenadas WGS-84 .
  • O datum geodético usado para medir a distância na Terra é uma esfera.

Exemplos

O exemplo seguinte localiza a distância mais curta entre Seattle e Los Angeles.

Distância entre Seattle e Los Angeles.

print distance_in_meters = geo_distance_2points(-122.407628, 47.578557, -118.275287, 34.019056)

Saída

distance_in_meters
1546754.35197381

O exemplo seguinte encontra uma aproximação do caminho mais curto de Seattle para Londres. A linha consiste em coordenadas ao longo da LineString e a 500 metros da mesma.

range i from 1 to 1000000 step 1
| project lng = rand() * real(-122), lat = rand() * 90
| where lng between(real(-122) .. 0) and lat between(47 .. 90)
| where geo_distance_point_to_line(lng,lat,dynamic({"type":"LineString","coordinates":[[-122,47],[0,51]]})) < 500
| render scatterchart with (kind=map)

Saída

Captura de ecrã do LineString de Seattle para Londres.

O exemplo seguinte localiza todas as linhas em que a distância mais curta entre duas coordenadas é entre um medidor e 11 metros.

StormEvents
| extend distance_1_to_11m = geo_distance_2points(BeginLon, BeginLat, EndLon, EndLat)
| where distance_1_to_11m between (1 .. 11)
| project distance_1_to_11m

Saída

distance_1_to_11m
10.5723100154958
7.92153588248414

O exemplo seguinte devolve um resultado nulo devido à entrada de coordenada inválida.

print distance = geo_distance_2points(300,1,1,1)

Saída

distância