Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция
Применяется к:
Databricks SQL
Databricks Runtime 17.1 и более поздних версий
Important
Поддержка значений GEOGRAPHY доступна в общедоступной предварительной версии. Общедоступная поддержка значений GEOMETRY.
Замечание
Эта функция недоступна в классических хранилищах Databricks SQL. Дополнительные сведения о хранилищах SQL Databricks см. в разделе "Типы хранилища SQL".
Задает n-ю точку входной полилинии GEOGRAPHY или значение GEOMETRY.
Syntax
st_setpoint ( geo1Expr, indexExpr, geo2Expr )
Arguments
-
geo1Expr: значениеGEOGRAPHYилиGEOMETRY, представляющее линейную строку. -
indexExprINTEGER: значение, указывающее 1-е положение в строке, в которой должна быть задана новая точка. -
geo2Expr: значениеGEOGRAPHYилиGEOMETRY, представляющее собой точку.
Returns
Значение типа GEOGRAPHY, если и geo1Expr, и geo2Expr имеют тип GEOGRAPHY, или значение типа GEOMETRY, если и geo1Expr, и geo2Expr имеют тип GEOMETRY.
Если indexExpr положительное, возвращаемое значение GEOGRAPHY или GEOMETRY является новой строкой линии, у которой indexExpr-я точка (отсчитывается geo2Expr слева) является geo2Expr.
Если indexExpr отрицательно, то позиция линии, начинающаяся с 1, в которой добавляется точка, измеряется справа.
- Функция возвращает
NULL, если какие-либо из входных данныхNULL. - Значение SRID выходной строки равно общему значению SRID входных
GEOGRAPHYилиGEOMETRYзначений. - Размер выходного
GEOGRAPHYилиGEOMETRYлинейного объекта такой же, как и уgeo1Expr. Еслиgeo2Exprсодержит координаты, измерение которых не существует вgeo1Expr, соответствующие координаты устанавливаются в значение 0.
Условия ошибок
- Если
geo1Exprимеет типGEOGRAPHY, аgeo2Exprимеет типGEOMETRY, или наоборот, функция возвращает DATATYPE_MISMATCH. - Если значения SRID и
geo1Exprgeo2Exprотличаются, функция возвращает ST_DIFFERENT_SRID_VALUES. - Функция возвращает ST_INVALID_ARGUMENT. INVALID_TYPE в любом из следующих случаев:
- Значение
geo1Exprне является строкой. - Значение
geo2Exprне является точкой.
- Значение
- Функция возвращает ST_INVALID_ARGUMENT. EMPTY_LINESTRING , если значение
geo1Exprявляется пустой строкой. - Функция возвращает ST_INVALID_ARGUMENT. EMPTY_POINT , если значение
geo2Exprявляется пустой точкой. - Если абсолютное значение значения
indexExprравно 0 или больше числа точек в строке, функция возвращает ST_INVALID_ARGUMENT. INVALID_INDEX_VALUE.
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)