O Amazon Redshift não permitirá mais a criação de funções definidas pelo usuário (UDFs) do Python a partir de 1.º de novembro de 2025. Se quiser usar UDFs do Python, você deve criá-las antes dessa data. As UDFs do Python existentes continuarão a funcionar normalmente. Para ter mais informações, consulte a publicação de blog
ST_AddPoint
ST_AddPoint retorna uma geometria de linestring que é a mesma geometria de entrada com adição de um ponto. Se um índice for fornecido, o ponto será adicionado na posição do índice. Se o índice for -1 ou não for fornecido, o ponto será anexado à linestring.
O índice é baseado em zero. O Spatial Reference System Identifier (SRID – Identificador do sistema de referência espacial) do resultado é o mesmo da geometria 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_AddPoint(geom1, geom2)
ST_AddPoint(geom1, geom2, index)
Argumentos
- geom1
-
Um valor de tipo de dados
GEOMETRYou uma expressão que é avaliada como um tipoGEOMETRY. O subtipo deve serLINESTRING. - geom2
-
Um valor de tipo de dados
GEOMETRYou uma expressão que é avaliada como um tipoGEOMETRY. O subtipo deve serPOINT. O ponto pode ser o ponto vazio. - índice
-
Um valor do tipo de dados
INTEGERque representa a posição de um índice baseado em zero.
Tipo de retorno
GEOMETRY
Se geom1, geom2 ou index for null, será retornado null.
Se geom2 é o ponto vazio, então uma cópia do geom1 é retornado.
Se geom1 não for uma LINESTRING, será retornado um erro.
Se geom2 não for um POINT, será retornado um erro.
Se index estiver fora do intervalo, será retornado um erro. Os valores válidos para a posição do índice são -1 ou um valor entre 0 e ST_NumPoints(geom1).
Exemplos
O SQL a seguir adiciona um ponto a uma linestring para torná-la uma linestring fechada.
WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326)) SELECT ST_AsEWKT(ST_AddPoint(g, ST_StartPoint(g))) FROM tmp;
st_asewkt
------------------------------------------------
SRID=4326;LINESTRING(0 0,10 0,10 10,5 5,0 5,0 0)
O SQL a seguir adiciona um ponto a uma posição específica em uma linestring.
WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326)) SELECT ST_AsEWKT(ST_AddPoint(g, ST_SetSRID(ST_Point(5, 10), 4326), 3)) FROM tmp;
st_asewkt
------------------------------------------------
SRID=4326;LINESTRING(0 0,10 0,10 10,5 10,5 5,0 5)