Udostępnij przez


ST_DISTANCE — Język zapytań w usłudze Cosmos DB (na platformie Azure i w sieci szkieletowej)

Funkcja ST_DISTANCE zwraca odległość między dwoma wyrażeniami GeoJSON Point, Polygon, MultiPolygon lub LineString.

Funkcja ST_DISTANCE zwraca wartość liczbową reprezentującą odległość między dwoma obiektami GeoJSON w usłudze Azure Cosmos DB for NoSQL.

Składnia

ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Description
spatial_expr_1 Dowolne prawidłowe wyrażenie GeoJSON Point, Polygon, MultiPolygon lub LineString.
spatial_expr_2 Dowolne prawidłowe wyrażenie GeoJSON Point, Polygon, MultiPolygon lub LineString.

Typy zwracane

Zwraca wyrażenie liczbowe, które wylicza odległość między dwoma wyrażeniami.

Przykłady

Ta sekcja zawiera przykłady użycia tej konstrukcji języka zapytań.

Obliczanie odległości między punktami

W tym przykładzie ST_DISTANCE funkcja służy do obliczania odległości między lokalizacją biura a punktem odniesienia, zwracając wynik w kilometrach.

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
  }
]

Uwagi

  • Wynik jest wyrażony w miernikach dla domyślnego systemu odniesienia.
  • Ta funkcja korzysta z indeksu geoprzestrzennego z wyjątkiem zapytań z agregacjami.
  • Specyfikacja GeoJSON wymaga, aby punkty w obrębie wielokąta zostały określone w kolejności odwrotnej do ruchu wskazówek zegara. Wielokąt określony w kolejności wskazówek zegara reprezentuje odwrotność regionu w nim.