Udostępnij przez


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

Funkcja ST_ISVALIDDETAILED zwraca wartość JSON zawierającą wartość logiczną, jeśli określone wyrażenie GeoJSON Point, Polygon lub LineString jest prawidłowe, a jeśli jest nieprawidłowe, przyczyna.

Funkcja ST_ISVALIDDETAILED zwraca obiekt JSON wskazujący, czy obiekt GeoJSON jest prawidłowy i, jeśli nie, przyczyną w usłudze Azure Cosmos DB dla NoSQL.

Składnia

ST_ISVALIDDETAILED(<spatial_expr>)

Arguments

Description
spatial_expr Dowolne prawidłowe wyrażenie GeoJSON, Wielokąt lub LineString.

Typy zwracane

Zwraca obiekt JSON zawierający wartość logiczną wskazującą, czy określony punkt GeoJSON lub wyrażenie wielokątne jest prawidłowe. Jeśli jest on nieprawidłowy, obiekt dodatkowo zawiera przyczynę jako wartość ciągu.

Przykłady

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

Sprawdzanie poprawności obiektów GeoJSON

W tym przykładzie ST_ISVALIDDETAILED funkcja służy do sprawdzania poprawności wielu obiektów GeoJSON.

SELECT VALUE {
  valid: ST_ISVALIDDETAILED({ 
      "type": "Point",
      "coordinates": [-84.38876194345323, 33.75682784306348] 
  }),
  invalid: ST_ISVALIDDETAILED({ 
      "type": "Point",
      "coordinates": [133.75682784306348, -184.38876194345323] 
  })
}
[
  {
    "valid": {
      "valid": true
    },
    "invalid": {
      "valid": false,
      "reason": "Latitude values must be between -90 and 90 degrees."
    }
  }
]

Uwagi

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