Aracılığıyla paylaş


st_setpoint fonksiyon

Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL denetimi evet olarak işaretlendi Databricks Runtime 17.1 ve üzeri

Important

Bu özellik Genel Önizleme aşamasındadır.

Uyarı

Bu özellik Databricks SQL Klasik ambarlarında kullanılamaz. Databricks SQL ambarları hakkında daha fazla bilgi edinmek için bkz. SQL ambar türleri.

Giriş çizgi dizesinin GEOGRAPHY veya GEOMETRY değerin n. noktasını ayarlar.

Syntax

st_setpoint ( geo1Expr, indexExpr, geo2Expr )

Arguments

  • geo1Expr: Bir satır dizesini temsil eden bir GEOGRAPHY veya GEOMETRY değeri.
  • indexExpr: Yeni noktanın ayarlanması gerektiği çizgi dizisindeki 1 tabanlı konumu belirten bir INTEGER değeri.
  • geo2Expr: Bir GEOGRAPHY veya GEOMETRY değeri bir noktayı temsil eder.

Returns

Eğer GEOGRAPHY ve geo1Expr her ikisi de geo2Expr türündeyse GEOGRAPHY türünde bir değer veya GEOMETRY ve geo1Expr her ikisi de geo2Expr türündeyse GEOMETRY türünde bir değer. Pozitifse indexExpr, döndürülen GEOGRAPHY veya GEOMETRY değeri, indexExpr 'üncü noktası (soldan sayılan) geo2Expr olarak ayarlanmış yeni bir çizgi dizesidir. Negatifse indexExpr , noktanın eklendiği çizgi dizesinin 1 tabanlı konumu sağdan ölçülür.

  • Eğer girişlerden herhangi biri NULL ise, işlev NULL döndürür.
  • Çıkış çizgi dizesinin SRID değeri, girişin GEOGRAPHY veya GEOMETRY değerlerin ortak SRID değerine eşittir.
  • Çıktının GEOGRAPHY veya GEOMETRY çizgi dizesinin boyutu ile aynıdır geo1Expr. Eğer geo2Expr, boyutu geo1Expr içinde bulunmayan koordinatlar içeriyorsa, bu karşılık gelen koordinatlar 0 olarak ayarlanır.

Hata koşulları

  • türündeyse geo1Expr ve GEOGRAPHY türündeyse geo2ExprGEOMETRYveya tam tersiyse işlev DATATYPE_MISMATCH döndürür.
  • ve SRID değerleri geo1Expr farklıysa işlev geo2Expr döndürür.
  • işlev, aşağıdaki durumlardan herhangi birinde ST_INVALID_ARGUMENT.INVALID_TYPE döndürür:
    • değeri geo1Expr bir çizgi dizesi değildir.
    • değeri geo2Expr bir nokta değildir.
  • Fonksiyon, değerinin boş bir çizgi dizesi olması durumunda, geo1Expr döndürür.
  • İşlev, ST_INVALID_ARGUMENT.EMPTY_POINT değerini geri döner eğer geo2Expr boş bir nokta ise.
  • indexExpr değerinin mutlak değeri 0 veya çizgi dizisindeki nokta sayısından büyük ya da eşitse, işlev ST_INVALID_ARGUMENT.INVALID_INDEX_VALUE döndürür.

Examples

-- We set the first point of the linestring counting from the left.
> SELECT st_astext(st_setpoint(st_geomfromtext('LINESTRING(1 2,3 4)'), 1, st_geomfromtext('POINT(7 8)')));
  LINESTRING(7 8,3 4)

-- We set the first point of the linestring counting from the right.
-- The point is missing a Z coordinate. This is set to 0 when we update the linestring.
> SELECT st_asewkt(st_setpoint(st_geogfromtext('LINESTRING ZM (1 2 3 4,5 6 7 8)'), -1, st_geogfromtext('POINT M (0 9 99)')));
  SRID=4326;LINESTRING ZM (1 2 3 4,0 9 0 99)