Compartir a través de


geo_distance_2points()

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

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

Sintaxis

geo_distance_2points( , p1_longitude, p1_latitude, p2_longitude, p2_latitude[ use_spheroid ])

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

Parámetros

Nombre Type Obligatorio 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].
use_spheroid bool Si false usará una esfera como referencia geodética para medir la distancia. Si true medirá la distancia mediante spheroid. Si no se especifica, se usa el valor false predeterminado.

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 mayoría de las aplicaciones deben medir la distancia mediante esfera ('use_spheroid' = false), que es más eficaz. Si se necesita precisión adicional, la opción "use_spheroid" se puede establecer en "true", para una precisión adicional, que podría ser más relevante para distancias más grandes, lo que podría verse afectado debido a la curvatura de tierra.

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 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 medidor 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

distance