Sdílet prostřednictvím


ST_WITHIN (dotaz NoSQL)

PLATÍ PRO: NoSQL

Vrátí logický výraz určující, zda geoJSON objekt (GeoJSON Point, Polygon nebo LineString výraz) zadaný v prvním argumentu je uvnitř GeoJSON objektu v druhém argumentu.

Syntaxe

ST_WITHIN(<spatial_expr_1>, <spatial_expr_2>)  

Argumenty

Popis
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í logickou hodnotu.

Příklady

Následující příklad ukazuje, jak zjistit, zda bod je v polygonu.

SELECT VALUE {
    isHeadquartersWithinCampus: ST_WITHIN({
        "type": "Point",
        "coordinates": [
            -122.12824857332558,
            47.6395516675712
        ]
    }, {            
        "type": "Polygon",
        "coordinates": [ [
            [
              -122.13236581015025,
              47.64606476313813
            ],
            [
              -122.13221982500913,
              47.633757091363975
            ],
            [
              -122.11840598103835,
              47.641749416109235
            ],
            [
              -122.12061400629656,
              47.64589264786028
            ],
            [
              -122.13236581015025,
              47.64606476313813
            ]
        ] ]
    })
}
[
  {
    "isHeadquartersWithinCampus": true
  }
]

Poznámky

  • 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í.