View a markdown version of this page

ST_SetPoint - Amazon Redshift

O Amazon Redshift deixará de oferecer suporte ao uso de UDFs em Python após 30 de junho de 2026. Começaremos a aplicar essa alteração em fases. Consulte mais informações sobre os detalhes do fim da vida útil do Python e as opções de migração na publicação do blog publicada em 30 de junho de 2025.

ST_SetPoint

ST_SetPoint retorna uma linestring com coordenadas atualizadas em relação à posição do linestring de entrada conforme especificado pelo índice. As novas coordenadas são as coordenadas do ponto de entrada.

A dimensão da geometria retornada é a mesma do valor de geom1. Se geom1 e geom2 têm dimensões diferentes, geom2 é projetado para a dimensão de geom1.

Sintaxe

ST_SetPoint(geom1, index, geom2)

Argumentos

geom1

Um valor de tipo de dados GEOMETRY ou uma expressão que é avaliada como um tipo GEOMETRY. O subtipo deve ser LINESTRING.

Índice do

Um valor de tipo de dados INTEGER que representa a posição de um índice. Um 0 refere-se ao primeiro ponto da linestring a partir da esquerda, 1 refere-se ao segundo ponto, e assim por diante. O índice pode ser um valor negativo. Um -1 refere-se ao primeiro ponto da linestring a partir da direita, -2 refere-se ao segundo ponto, e assim por diante.

geom2

Um valor de tipo de dados GEOMETRY ou uma expressão que é avaliada como um tipo GEOMETRY. O subtipo deve ser POINT.

Tipo de retorno

GEOMETRY

Se geom2 for um ponto vazio, então geom1 será retornado.

Se geom1, geom2 ou index for null, será retornado null.

Se geom1 não for uma linestring, será retornado um erro.

Se índice não está dentro de um intervalo de índice válido, então será retornado um erro.

Se geom2 não for um ponto, então será retornado um erro.

Um erro será retornado se geom1 e geom2 não tiverem o mesmo valor do identificador do sistema referência espacial (SRID -spatial reference system identifier).

Exemplos

O SQL a seguir retorna uma nova linestring onde definimos o segundo ponto da linestring de entrada com o ponto especificado.

SELECT ST_AsText(ST_SetPoint(ST_GeomFromText('LINESTRING(1 2, 3 2, 5 2, 1 2)'), 2, ST_GeomFromText('POINT(7 9)')));
st_astext ------------- LINESTRING(1 2,3 2,7 9,1 2)

O exemplo SQL a seguir retorna uma nova linestring onde definimos o terceiro ponto a partir da direita (o índice é negativo) da linestring com o ponto especificado.

SELECT ST_AsText(ST_SetPoint(ST_GeomFromText('LINESTRING(1 2, 3 2, 5 2, 1 2)'), -3, ST_GeomFromText('POINT(7 9)')));
st_astext ------------- LINESTRING(1 2,7 9,5 2,1 2)