Atribuir valor Z ao início e fim da linha PostGIS

9

Eu tenho uma tabela de linhas no meu banco de dados PostGIS e uma tabela com níveis invertidos para o início e o fim de cada linha.

Meu objetivo é criar linhas 3D em minha tabela, a partir dos meus dados invertidos. Eu sei que posso usar st_makeline para recriar a linha com um ponto 3D no início e no final, mas esperava poder executar uma atualização apenas no valor Z para o início e o final.

Isso pode ser feito ou é mais fácil recriar a linha.

Nathan W
fonte

Respostas:

2

-Você pode atualizar um ponto em uma cadeia de linhas com ST_SetPoint (cadeia de linhas de geometria, posição com base em zeros inteiros, ponto de geometria) e ST_Translate ().
-Para obter o primeiro e o último ponto, use st_endpoint () e st_startpoint ().
-Para obter o "índice" do último ponto, use ST_NumPoints (the_geom) -1.
-O primeiro ponto "índice" é 0.

Algo assim para o primeiro ponto:

  UPDATE table
  SET the_geom=
st_setpoint(the_geom,0,st_translate(st_firstpoint(the_geom),0,0,Z))  
   FROM ....
Pablo
fonte