Compartilhar via


ST_DISTANCE – Linguagem de consulta no Cosmos DB (no Azure e no Fabric)

A ST_DISTANCE função retorna a distância entre duas expressões GeoJSON Point, Polygon, MultiPolygon ou LineString.

A ST_DISTANCE função retorna um valor numérico que representa a distância entre dois objetos GeoJSON no Azure Cosmos DB para NoSQL.

Sintaxe

ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Description
spatial_expr_1 Qualquer expressão válida de Ponto GeoJSON, Polígono, MultiPolygon ou LineString.
spatial_expr_2 Qualquer expressão válida de Ponto GeoJSON, Polígono, MultiPolygon ou LineString.

Tipos de retorno

Retorna uma expressão numérica que enumera a distância entre duas expressões.

Exemplos

Esta seção contém exemplos de como usar este constructo de linguagem de consulta.

Calcular a distância entre pontos

Neste exemplo, a ST_DISTANCE função é usada para calcular a distância entre um local do escritório e um ponto de referência, retornando o resultado em quilômetros.

SELECT
    o.name,
    ST_DISTANCE(o.location, {
        "type": "Point", 
        "coordinates": [-122.11758113953535, 47.66901087006131]
    }) / 1000 AS distanceKilometers
FROM
    offices o
WHERE
    o.category = "business-offices"
[
  {
    "name": "Headquarters",
    "distanceKilometers": 3.345269817267368
  },
  {
    "name": "Research and development",
    "distanceKilometers": 1907.438421299902
  }
]

Observações

  • O resultado é expresso em medidores para o sistema de referência padrão.
  • Essa função se beneficia de um índice geoespacial, exceto em consultas com agregações.
  • A especificação GeoJSON requer que os pontos dentro de um Polígono sejam especificados em ordem no sentido anti-horário. Um Polígono especificado em ordem no sentido horário representa o inverso da região dentro dele.