Sdílet prostřednictvím


ST_DISTANCE – Dotazovací jazyk ve službě Cosmos DB (v Azure a prostředcích infrastruktury)

Funkce ST_DISTANCE vrátí vzdálenost mezi dvěma výrazy GeoJSON Point, Polygon, MultiPolygon nebo LineString.

Funkce ST_DISTANCE vrátí číselnou hodnotu představující vzdálenost mezi dvěma objekty GeoJSON ve službě Azure Cosmos DB for NoSQL.

Syntaxe

ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Description
spatial_expr_1 Libovolný platný výraz GeoJSON Point, Polygon, MultiPolygon nebo LineString.
spatial_expr_2 Libovolný platný výraz GeoJSON Point, Polygon, MultiPolygon nebo LineString.

Návratové typy

Vrátí číselný výraz, který vypočítá vzdálenost mezi dvěma výrazy.

Examples

Tato část obsahuje příklady použití tohoto konstruktoru dotazovacího jazyka.

Výpočet vzdálenosti mezi body

V tomto příkladu ST_DISTANCE se funkce používá k výpočtu vzdálenosti mezi umístěním kanceláře a referenčním bodem, který vrací výsledek v kilometrech.

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

Poznámky

  • Výsledek se vyjadřuje v metrech pro výchozí referenční systém.
  • Tato funkce využívá geoprostorový index s výjimkou dotazů s agregacemi.
  • Specifikace GeoJSON vyžaduje, aby body v polygonu byly zadány v proti směru hodinových ručiček. Mnohoúhelník zadaný v pořadí hodinových ručiček představuje inverzní funkci oblasti v ní.