ST_UNION - Exception in LWGEOM2GEOS

View: New views
4 Messages — Rating Filter:   Alert me  

ST_UNION - Exception in LWGEOM2GEOS

by Mehmet-7 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,
I just tried to create a mutlilinestring out of a set of linestrings via 
SELECT AsText( ST_UNION(linestring) )

FROM ways w, way_tags wt WHERE w.id=wt.way_id 
AND wt.v='Dörnter Weg'

(it lies in Osnabrück, lower saxony)
but I'm getting this strange error: 
HINWEIS: IllegalArgumentException: point array must contain 0 or >1 elements


FEHLER: Exception in LWGEOM2GEOS

********** Fehler **********

FEHLER: Exception in LWGEOM2GEOS
SQL Status:XX000


Replacing wt.v='Dörnter Weg' with wt.v='Some other Streets' it works properly. 
So it is because of this street 'Dörnter Weg' (i got a few other ones of this kind in my database).
Anybody can tell me why these sort of ways leads to a problem?
thank you
kind regards
mehmet sirin

_______________________________________________
postgis-users mailing list
postgis-users@...
http://postgis.refractions.net/mailman/listinfo/postgis-users

Re: ST_UNION - Exception in LWGEOM2GEOS

by Paragon Corporation-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Mehmet,
It sounds like your line string might have 0 or 1 points.
 
Use
 
ST_NPoints(linestring) < 2  to find all linestrings with fewer than 2 points
 
Leo


From: postgis-users-bounces@... [mailto:postgis-users-bounces@...] On Behalf Of Mehmet Sirin
Sent: Monday, October 26, 2009 7:24 PM
To: PostGIS Users Discussion
Subject: [postgis-users] ST_UNION - Exception in LWGEOM2GEOS

Hi,
I just tried to create a mutlilinestring out of a set of linestrings via 
SELECT AsText( ST_UNION(linestring) )

FROM ways w, way_tags wt WHERE w.id=wt.way_id 
AND wt.v='Dörnter Weg'

(it lies in Osnabrück, lower saxony)
but I'm getting this strange error: 
HINWEIS: IllegalArgumentException: point array must contain 0 or >1 elements


FEHLER: Exception in LWGEOM2GEOS

********** Fehler **********

FEHLER: Exception in LWGEOM2GEOS
SQL Status:XX000


Replacing wt.v='Dörnter Weg' with wt.v='Some other Streets' it works properly. 
So it is because of this street 'Dörnter Weg' (i got a few other ones of this kind in my database).
Anybody can tell me why these sort of ways leads to a problem?
thank you
kind regards
mehmet sirin

_______________________________________________
postgis-users mailing list
postgis-users@...
http://postgis.refractions.net/mailman/listinfo/postgis-users

Re: ST_UNION - Exception in LWGEOM2GEOS

by Mehmet-7 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi, 
indeed there are some linestrings with only 1 Point.
But I don't know how come.. after checking these points I saw that they are nothing but normal
points on the way ,that means nothing special that should cause a problem.
one of then is on the way 'Ahlde' -> "LINESTRING(7.3402594 52.3361277)"
maybe you should know, that I imported data via osmosis and then created linestringsby using :
  UPDATE ways w SET linestring = (
  SELECT MakeLine(c.geom) AS way_line FROM (
  SELECT n.geom AS geom FROM nodes n INNER JOIN way_nodes 
wn ON n.id = wn.node_id
  WHERE (wn.way_id = w.id) ORDER BY wn.sequence_id
  ) c
  );


2009/10/27 Paragon Corporation <lr@...>
Mehmet,
It sounds like your line string might have 0 or 1 points.
 
Use
 
ST_NPoints(linestring) < 2  to find all linestrings with fewer than 2 points
 
Leo


From: postgis-users-bounces@... [mailto:postgis-users-bounces@...] On Behalf Of Mehmet Sirin
Sent: Monday, October 26, 2009 7:24 PM
To: PostGIS Users Discussion
Subject: [postgis-users] ST_UNION - Exception in LWGEOM2GEOS

Hi,
I just tried to create a mutlilinestring out of a set of linestrings via 
SELECT AsText( ST_UNION(linestring) )

FROM ways w, way_tags wt WHERE w.id=wt.way_id 
AND wt.v='Dörnter Weg'

(it lies in Osnabrück, lower saxony)
but I'm getting this strange error: 
HINWEIS: IllegalArgumentException: point array must contain 0 or >1 elements


FEHLER: Exception in LWGEOM2GEOS

********** Fehler **********

FEHLER: Exception in LWGEOM2GEOS
SQL Status:XX000


Replacing wt.v='Dörnter Weg' with wt.v='Some other Streets' it works properly. 
So it is because of this street 'Dörnter Weg' (i got a few other ones of this kind in my database).
Anybody can tell me why these sort of ways leads to a problem?
thank you
kind regards
mehmet sirin

_______________________________________________
postgis-users mailing list
postgis-users@...
http://postgis.refractions.net/mailman/listinfo/postgis-users



_______________________________________________
postgis-users mailing list
postgis-users@...
http://postgis.refractions.net/mailman/listinfo/postgis-users

Re: ST_UNION - Exception in LWGEOM2GEOS

by Paragon Corporation-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Mehmet,
 
One point does not make a linestring :)
 
I suppose what you could do is change these to points with something of the form
 
UPDATE ways
SET linestring = ST_PointN(linestring,1)
WHERE ST_NPoints(linestring) = 1
 
though you'll need to drop your geometry type constraint on your table first to do that.
 
Alternatively you could just delete these records  sine they are cases where ST_MakeLine had only one point in the result).
 
Hope that helps,
Regina


From: postgis-users-bounces@... [mailto:postgis-users-bounces@...] On Behalf Of Mehmet Sirin
Sent: Tuesday, October 27, 2009 3:13 PM
To: PostGIS Users Discussion
Subject: Re: [postgis-users] ST_UNION - Exception in LWGEOM2GEOS

Hi, 
indeed there are some linestrings with only 1 Point.
But I don't know how come.. after checking these points I saw that they are nothing but normal
points on the way ,that means nothing special that should cause a problem.
one of then is on the way 'Ahlde' -> "LINESTRING(7.3402594 52.3361277)"
maybe you should know, that I imported data via osmosis and then created linestringsby using :
  UPDATE ways w SET linestring = (
  SELECT MakeLine(c.geom) AS way_line FROM (
  SELECT n.geom AS geom FROM nodes n INNER JOIN way_nodes 
wn ON n.id = wn.node_id
  WHERE (wn.way_id = w.id) ORDER BY wn.sequence_id
  ) c
  );


2009/10/27 Paragon Corporation <lr@...>
Mehmet,
It sounds like your line string might have 0 or 1 points.
 
Use
 
ST_NPoints(linestring) < 2  to find all linestrings with fewer than 2 points
 
Leo


From: postgis-users-bounces@... [mailto:postgis-users-bounces@...] On Behalf Of Mehmet Sirin
Sent: Monday, October 26, 2009 7:24 PM
To: PostGIS Users Discussion
Subject: [postgis-users] ST_UNION - Exception in LWGEOM2GEOS

Hi,
I just tried to create a mutlilinestring out of a set of linestrings via 
SELECT AsText( ST_UNION(linestring) )

FROM ways w, way_tags wt WHERE w.id=wt.way_id 
AND wt.v='Dörnter Weg'

(it lies in Osnabrück, lower saxony)
but I'm getting this strange error: 
HINWEIS: IllegalArgumentException: point array must contain 0 or >1 elements


FEHLER: Exception in LWGEOM2GEOS

********** Fehler **********

FEHLER: Exception in LWGEOM2GEOS
SQL Status:XX000


Replacing wt.v='Dörnter Weg' with wt.v='Some other Streets' it works properly. 
So it is because of this street 'Dörnter Weg' (i got a few other ones of this kind in my database).
Anybody can tell me why these sort of ways leads to a problem?
thank you
kind regards
mehmet sirin

_______________________________________________
postgis-users mailing list
postgis-users@...
http://postgis.refractions.net/mailman/listinfo/postgis-users



_______________________________________________
postgis-users mailing list
postgis-users@...
http://postgis.refractions.net/mailman/listinfo/postgis-users