2012-08-29 7 views
6

Tengo una tabla llamada geofences que almacena la geometría del tipo de polígono en la columna denominada geometry. Yo para actualizar el Polígono eliminando solo un punto de la geometría existente. Para esto he utilizado la consulta:Actualizar actualización Geometría de polígono utilizando ST_removePoint

UPDATE gfe_geofences 
    SET geometry = ST_RemovePoint(geometry, ST_NPoints(ST_GeomFromText(
        'POINT(23.1446787840563 96.002746420167)', 0)) - 1) 
    WHERE is_active = true 
    AND ST_IsClosed(the_geom) = true; 

pero me da el error:

ERROR: lwline_deserialize: attempt to deserialize a line which is really a Invalid type

¿Me podría ayudar en la actualización de la geometría.

Gracias de antemano.

+0

¿Qué versión de PostGIS ? Es 'geometry' un tipo LineString? ¿Qué es' the_geom', o es un error tipográfico para 'geometry' (o viceversa)? –

+0

PostGIS 9.1, ninguna geometría es de tipo de polígono, para LineString ST_Remove es archivo de trabajo the_geom es un columna (Ignore esta condición Y ST_IsClosed (the_geom) = true;) –

Respuesta

1

ST_RemovePoint sólo funcionará con cadenas de líneas (ver http://postgis.refractions.net/docs/ST_RemovePoint.html. Lo que quiero hacer, usar ST_Boundary para obtener el límite de su polígono, llame ST_RemovePoint en que, a continuación, utilizar ST_MakePolygon para construir un nuevo polígono.

Cuestiones relacionadas