[postgis-users] line interpolate point
George R. C. Silva
georger.silva at gmail.com
Tue May 27 17:57:12 PDT 2008
Hello everyone!
Once again i come to your expertise.
I have a MULTILINESTRING layer (logradouros) and a test point layer.
What i want to do is to locate the midpoint of a specific road and place
a point into it.
Well, the roads layer have these informations nomelog(name of the road),
prefixo_direcao(intersection before that piece of road) and
sufixo_direcao(intersection after that piece of road).
I want that this function selects the apropriate piece of road using
those fields, and then interpolate and insert the point to another layer.
----
*create or replace function interpola_centro(text,text,text) returns
geometry as
$$
declare
geo_ponto geometry;
geometria geometry;
sql varchar;
begin
sql:='select the_geom from logradouros where nomelog='||$1||' and
prefixo_direcao='||$2||' and sufixo_direcao='||$3 ;
geometria := sql;
geo_ponto := st_line_interpolate_point(st_geometryn(geometria,1),.5);
insert into teste(the_geom) values (geo_ponto);
return geo_ponto;
end;
$$
language plpgsql
---
*there is no problem with the function 'per se', but when i try to run
the function it gives me:
ERROR: parse error - invalid geometry
CONTEXT: PL/pgSQL function "interpola_centro" line 9 at assignment
what is wrong?
Thanks for your attention
George Silva
More information about the postgis-users
mailing list