[postgis-users] More details for errors

Denis Rouzaud denis.rouzaud at gmail.com
Tue Mar 27 07:50:56 PDT 2012


Yes, it is 2.0
http://postgis.refractions.net/documentation/manual-svn/ST_CollectionHomogenize.html

Well, I am turning around the problem...
I have to do a cast, as I used 
ST_Multi(ST_LineMerge(ST_Union(wkb_geometry)))::geometry(MultiLineString,xxx) 
in the first view to prevent errors of unconnected lines.

Right now the best solution I have is to let the view being unusable, 
and another view to report errors.
This is not very satisfying as if a problem occurs, I cannot use my view 
until I fix the geometric errors.

Basically, I need to compute a view with a LineMerge returning 
LineString (i.e. leaving away features leading to MultiLineString) and 
another view returning IDs of features leading to MULTI.

I thought about using ST_Touches but it only uses two geometries and I 
can have more in the LineMerge. No idea what to look for...

Thanks for your help. I could go deeper in the problem!

Greetings

Denis





On 03/27/2012 04:39 PM, Nicolas Ribot wrote:
> On 27 March 2012 16:09, Denis Rouzaud<denis.rouzaud at gmail.com>  wrote:
>> Hi Nicolas,
>>
>> Thanks again.
>>
>> Well, this working, but this not performant...
>>
>> Based on your suggestion, I tried this:
>> in view1:
>> ST_Multi(ST_LineMerge(ST_Union(wkb_geometry)))::geometry(MultiLineString,21781)
>> AS wkb_geometry
>>
>> Then in view2:
>> ST_CollectionHomogenize(wkb_geometry)::geometry(LineString,21781) AS
>> wkb_geometry
>> FROM view1
>>   WHERE ST_NumGeometries(wkb_geometry) = 1;
>>
>> And I can detect problems by doing:
>> SELECT id FROM view1  WHERE ST_NumGeometries(wkb_geometry) != 1;
>>
>>
>> But this is slowing down a lot.
>> I think that the ST_CollectionHomogenize is not the right way. Is there a
>> better function to transform multiline to line if I am sure I only have
>> lines?
>>
> I did not know this function. 2.0 ?
> You can simply do:
>
> st_setsrid(ST_geometryN(wkb_geometry), 21781) AS
> wkb_geometry
> FROM view1
>   WHERE ST_NumGeometries(wkb_geometry) = 1;
>
> If geoms come from linemerge, no need to cast to a linestring. It is
> already one.
>
> Nicolas
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20120327/4d702247/attachment.html>


More information about the postgis-users mailing list