geo_distance_2points()

Calcula la distancia más corta en metros entre dos coordenadas geoespaciales en la Tierra.

Syntax

geo_distance_2points(, p1_longitude, p1_latitude, p2_longitudep2_latitude)

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

Parámetros

Nombre Tipo Requerido Descripción
p1_longitude real ✔️ Valor de longitud en grados de la primera coordenada geoespacial. Un valor válido está en el intervalo [-180, +180].
p1_latitude real ✔️ Valor de latitud en grados de la primera coordenada geoespacial. Un valor válido está en el intervalo [-90, +90].
p2_longitude real ✔️ Valor de longitud en grados de la segunda coordenada geoespacial. Un valor válido está en el intervalo [-180, +180].
p2_latitude real ✔️ Valor de latitud en grados de la segunda coordenada geoespacial. Un valor válido está en el intervalo [-90, +90].

Devoluciones

La distancia más corta, en metros, entre dos ubicaciones geográficas en la Tierra. Si las coordenadas no son válidas, 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.

Ejemplos

En el ejemplo siguiente se encuentra la distancia más corta entre Seattle y Los Ángeles.

Distancia entre Seattle y Los Ángeles.

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

Salida

distance_in_meters
1546754.35197381

En el ejemplo siguiente se encuentra una aproximación de la ruta más corta de Seattle a Londres. La línea consta de coordenadas a lo largo de LineString y a menos de 500 metros de ella.

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)

Salida

Captura de pantalla de Seattle a London LineString.

En el ejemplo siguiente se buscan todas las filas en las que la distancia más corta entre dos coordenadas está entre un metro y 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

Salida

distance_1_to_11m
10.5723100154958
7.92153588248414

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

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

Salida

distancia