|
View:
New views
19 Messages
—
Rating Filter:
Alert me
|
|
|
Re: postgis-users Digest, Vol 55, Issue 3Jeg er på forældreorlov indtil d. 14. maj. Mine kollegaer kan traeffes paa tlf. 98129300.
I am on parental leave until May 14. If you have any matter of urgency please do not hesitate to call my collegues on +45 98129300 _______________________________________________ postgis-users mailing list postgis-users@... http://postgis.refractions.net/mailman/listinfo/postgis-users |
|
|
GeomUnion problemHi, I'm not sure what the problem is here, hopefully someone can help. I have some polygons cropped to cell boundaries. (select intersection...) I want to generate the geomunion of these for each cell, which seems straightforward, but GEOS is throwing an error... select astext(geomunion(track_cell_geom)) from effort_cells3 where cell_id = 73721; NOTICE: TopologyException: no outgoing dirEdge found (168.077,-40.1961,-40.1961) ERROR: GEOS union() threw an error! Can anyone say what this means & what I need to do to work around it? Thanks, Brent Wood _______________________________________________ postgis-users mailing list postgis-users@... http://postgis.refractions.net/mailman/listinfo/postgis-users |
|
|
Re: GeomUnion problemLet me guess - the two polygons causing this problem had a collinear
edge which crosses the cell boundary? If so, this is the *toughest* situation for the union code to handle robustly, since it is trying to union along two edges which are almost collinear, but not quite. Tough to suggest a fix... One possible way is to do the union of the orginal polygons first, and then clip - but this may or may not be possible in your situation. If all you want is an area result, you could buffer the polys by a very small amount, union, and then negative-buffer the result. If you can post examples of the failure case, more ideas might come to mind... Brent Wood wrote: > Hi, > > I'm not sure what the problem is here, hopefully someone can help. > > I have some polygons cropped to cell boundaries. (select intersection...) > I want to generate the geomunion of these for each cell, which seems > straightforward, but GEOS is throwing an error... > > select astext(geomunion(track_cell_geom)) from effort_cells3 where cell_id = > 73721; > NOTICE: TopologyException: no outgoing dirEdge found > (168.077,-40.1961,-40.1961) > ERROR: GEOS union() threw an error! > > > > Can anyone say what this means & what I need to do to work around it? > > Thanks, > > Brent Wood > _______________________________________________ > postgis-users mailing list > postgis-users@... > http://postgis.refractions.net/mailman/listinfo/postgis-users > > -- Martin Davis Senior Technical Architect Refractions Research, Inc. (250) 383-3022 _______________________________________________ postgis-users mailing list postgis-users@... http://postgis.refractions.net/mailman/listinfo/postgis-users |
|
|
Re: GeomUnion problemAnother idea - are you using the latest version of PostGIS/GEOS? The
recent release added some GEOS enhancements which were designed to address this issue. Brent Wood wrote: > Hi, > > I'm not sure what the problem is here, hopefully someone can help. > > I have some polygons cropped to cell boundaries. (select intersection...) > I want to generate the geomunion of these for each cell, which seems > straightforward, but GEOS is throwing an error... > > select astext(geomunion(track_cell_geom)) from effort_cells3 where cell_id = > 73721; > NOTICE: TopologyException: no outgoing dirEdge found > (168.077,-40.1961,-40.1961) > ERROR: GEOS union() threw an error! > > > > Can anyone say what this means & what I need to do to work around it? > > Thanks, > > Brent Wood > _______________________________________________ > postgis-users mailing list > postgis-users@... > http://postgis.refractions.net/mailman/listinfo/postgis-users > > -- Martin Davis Senior Technical Architect Refractions Research, Inc. (250) 383-3022 _______________________________________________ postgis-users mailing list postgis-users@... http://postgis.refractions.net/mailman/listinfo/postgis-users |
|
|
Re: GeomUnion problem--- Martin Davis <mbdavis@...> wrote: > Another idea - are you using the latest version of PostGIS/GEOS? The > recent release added some GEOS enhancements which were designed to > address this issue. Thanks Martin, The version I'm running is: ben200601=# select postgis_geos_version(); postgis_geos_version ---------------------- 2.2.3-CAPI-1.1.1 I believe this is pretty much the current release, apart from the RC's of V3. Sigh, I need this to work within a week or so somehow, I was hoping to use this project as a showcase of FOSS GIS, but murphy strikes :-) Is GEOS v3RC going to be reliable enough for a mission critical production job with several million polygons to be manipulated? What is entailed in upgrading GEOS? Do I need to rebuild & reinstall PostGIS? Will the current DB/data still be accessible? Or is there some way of tweaking the underlying polygons to be combined to address the problem? Appreciated, Brent > > Brent Wood wrote: > > Hi, > > > > I'm not sure what the problem is here, hopefully someone can help. > > > > I have some polygons cropped to cell boundaries. (select intersection...) > > I want to generate the geomunion of these for each cell, which seems > > straightforward, but GEOS is throwing an error... > > > > select astext(geomunion(track_cell_geom)) from effort_cells3 where > cell_id = > > 73721; > > NOTICE: TopologyException: no outgoing dirEdge found > > (168.077,-40.1961,-40.1961) > > ERROR: GEOS union() threw an error! > > > > > > > > Can anyone say what this means & what I need to do to work around it? > > > > Thanks, > > > > Brent Wood > > _______________________________________________ > > 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: GeomUnion problemOn 3-May-07, at 6:36 PM, Brent Wood wrote: > Is GEOS v3RC going to be reliable enough for a mission critical > production job > with several million polygons to be manipulated? Probably. > What is entailed in upgrading GEOS? ./configure ; make ; make install > Do I need to rebuild & reinstall PostGIS? No, you can drop the new GEOS in behind. Re-connect to the database and the new library will be loaded. > Will the current DB/data still be accessible? Yes. > Or is there some way of tweaking the underlying polygons to be > combined to > address the problem? Martin gave that recipe: buffer(geomunion(buffer(a,0.1),buffer(b, 0.1)),-0.1) P > > > Appreciated, > > Brent > > >> >> Brent Wood wrote: >>> Hi, >>> >>> I'm not sure what the problem is here, hopefully someone can help. >>> >>> I have some polygons cropped to cell boundaries. (select >>> intersection...) >>> I want to generate the geomunion of these for each cell, which seems >>> straightforward, but GEOS is throwing an error... >>> >>> select astext(geomunion(track_cell_geom)) from effort_cells3 >>> where >> cell_id = >>> 73721; >>> NOTICE: TopologyException: no outgoing dirEdge found >>> (168.077,-40.1961,-40.1961) >>> ERROR: GEOS union() threw an error! >>> >>> >>> >>> Can anyone say what this means & what I need to do to work around >>> it? >>> >>> Thanks, >>> >>> Brent Wood >>> _______________________________________________ >>> 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 _______________________________________________ postgis-users mailing list postgis-users@... http://postgis.refractions.net/mailman/listinfo/postgis-users |
|
|
Re: GeomUnion problem--- Paul Ramsey <pramsey@...> wrote: Hi Paul, Much appreciated. I never received Martin's first reply describing the buffer approach. I've checked my trash folder & I did not delete it by mistake, I did recieve what now appears to be his second message mentioning the version as a possible issue, which was the one I replied to. Thanks for all the info. I'll have a go with the buffer approach & see if that works, if not I'll try v3.0. I appreciate that v3 should work seamlessly, but I'm well down the track with a very effective system so far & if I can make v2 do the job, then it ain't broke enough yet :-) The output is for reports to two Govt Depts, with about 2500 colour publication quality maps. All work done in FOSS (postgis/GMT/R) Many thanks for the help! As always, it is so much better than that for any proprietary software I've ever seen! Thanks again, Brent Wood > On 3-May-07, at 6:36 PM, Brent Wood wrote: > > > Is GEOS v3RC going to be reliable enough for a mission critical > > production job > > with several million polygons to be manipulated? > > Probably. > > > What is entailed in upgrading GEOS? > > ./configure ; make ; make install > > > Do I need to rebuild & reinstall PostGIS? > > No, you can drop the new GEOS in behind. Re-connect to the database > and the new library will be loaded. > > > Will the current DB/data still be accessible? > > Yes. > > > Or is there some way of tweaking the underlying polygons to be > > combined to > > address the problem? > > Martin gave that recipe: buffer(geomunion(buffer(a,0.1),buffer(b, > 0.1)),-0.1) > > P > > > > > > > Appreciated, > > > > Brent > > > > > >> > >> Brent Wood wrote: > >>> Hi, > >>> > >>> I'm not sure what the problem is here, hopefully someone can help. > >>> > >>> I have some polygons cropped to cell boundaries. (select > >>> intersection...) > >>> I want to generate the geomunion of these for each cell, which seems > >>> straightforward, but GEOS is throwing an error... > >>> > >>> select astext(geomunion(track_cell_geom)) from effort_cells3 > >>> where > >> cell_id = > >>> 73721; > >>> NOTICE: TopologyException: no outgoing dirEdge found > >>> (168.077,-40.1961,-40.1961) > >>> ERROR: GEOS union() threw an error! > >>> > >>> > >>> > >>> Can anyone say what this means & what I need to do to work around > >>> it? > >>> > >>> Thanks, > >>> > >>> Brent Wood > >>> _______________________________________________ > >>> 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 > > _______________________________________________ > 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: GeomUnion problem--- Paul Ramsey <pramsey@...> wrote: Hi Paul, Much appreciated. I never received Martin's first reply describing the buffer approach. I've checked my trash folder & I did not delete it by mistake, I did recieve what now appears to be his second message mentioning the version as a possible issue, which was the one I replied to. Thanks for all the info. I'll have a go with the buffer approach & see if that works, if not I'll try v3.0. I appreciate that v3 should work seamlessly, but I'm well down the track with a very effective system so far & if I can make v2 do the job, then it ain't broke enough yet :-) The output is for reports to two Govt Depts, with about 2500 colour publication quality maps. All work done in FOSS (postgis/GMT/R) Many thanks for the help! As always, it is so much better than that for any proprietary software I've ever seen! Thanks again, Brent Wood > On 3-May-07, at 6:36 PM, Brent Wood wrote: > > > Is GEOS v3RC going to be reliable enough for a mission critical > > production job > > with several million polygons to be manipulated? > > Probably. > > > What is entailed in upgrading GEOS? > > ./configure ; make ; make install > > > Do I need to rebuild & reinstall PostGIS? > > No, you can drop the new GEOS in behind. Re-connect to the database > and the new library will be loaded. > > > Will the current DB/data still be accessible? > > Yes. > > > Or is there some way of tweaking the underlying polygons to be > > combined to > > address the problem? > > Martin gave that recipe: buffer(geomunion(buffer(a,0.1),buffer(b, > 0.1)),-0.1) > > P > > > > > > > Appreciated, > > > > Brent > > > > > >> > >> Brent Wood wrote: > >>> Hi, > >>> > >>> I'm not sure what the problem is here, hopefully someone can help. > >>> > >>> I have some polygons cropped to cell boundaries. (select > >>> intersection...) > >>> I want to generate the geomunion of these for each cell, which seems > >>> straightforward, but GEOS is throwing an error... > >>> > >>> select astext(geomunion(track_cell_geom)) from effort_cells3 > >>> where > >> cell_id = > >>> 73721; > >>> NOTICE: TopologyException: no outgoing dirEdge found > >>> (168.077,-40.1961,-40.1961) > >>> ERROR: GEOS union() threw an error! > >>> > >>> > >>> > >>> Can anyone say what this means & what I need to do to work around > >>> it? > >>> > >>> Thanks, > >>> > >>> Brent Wood > >>> _______________________________________________ > >>> 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 > > _______________________________________________ > 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: GeomUnion problem--- Paul Ramsey <pramsey@...> wrote: <snip> > > Or is there some way of tweaking the underlying polygons to be > > combined to address the problem? > > Martin gave that recipe: buffer(geomunion(buffer(a,0.1),buffer(b, > 0.1)),-0.1) Hi guys, It looks like I'll need to upgrade GEOS to v3, as the buffer command has failed to fix the problem with geomunion: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ select buffer(geomunion(buffer(track_cell_geom,0.1)),-0.1) from effort_cells3 where cell_id = 73722 and isvalid(track_cell_geom); NOTICE: TopologyException: no outgoing dirEdge found (168.129,-40.0659,-40.0659) ERROR: GEOS union() threw an error! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Cheers, Brent _______________________________________________ postgis-users mailing list postgis-users@... http://postgis.refractions.net/mailman/listinfo/postgis-users |
|
|
Re: GeomUnion problemHi all, GEOS v3rc3 seems to have fixed the previous problem, but now I have another one! The usual Hydra like situation :-) geomunion() sometimes returns a multipolygon, & at other times it returns a polygon, depending I guess, on what it finds when it does it's thing. Is it possible to force all the output to multipolygon, so both single polygons & multi's can go in the same column? Or can I populate two columns, then somehow insert the polygons as multi's into the multi column? I could do this by exporting as text, pass the file through awk/sed to turn polygons into multi's, then insert them into the multi table. I guess another approach might be a view unioning the two columns into one, as the are both geometry datatypes as far as postgres is concerned, but this has other impacts which are not very nice. Any suggestions/advice appreciated. Thanks (again!) Brent Wood _______________________________________________ postgis-users mailing list postgis-users@... http://postgis.refractions.net/mailman/listinfo/postgis-users |
|
|
Re: GeomUnion problemBrent, wrap your output in the "multi()" function, which will fluff
everything up to aggregate geometries. Brent Wood wrote: > > Hi all, > > GEOS v3rc3 seems to have fixed the previous problem, but now I have another > one! > The usual Hydra like situation :-) > > geomunion() sometimes returns a multipolygon, & at other times it returns a > polygon, depending I guess, on what it finds when it does it's thing. > > Is it possible to force all the output to multipolygon, so both single polygons > & multi's can go in the same column? > > Or can I populate two columns, then somehow insert the polygons as multi's into > the multi column? > > I could do this by exporting as text, pass the file through awk/sed to turn > polygons into multi's, then insert them into the multi table. > > > I guess another approach might be a view unioning the two columns into one, as > the are both geometry datatypes as far as postgres is concerned, but this has > other impacts which are not very nice. > > Any suggestions/advice appreciated. > > > Thanks (again!) > > > Brent Wood > _______________________________________________ > postgis-users mailing list > postgis-users@... > http://postgis.refractions.net/mailman/listinfo/postgis-users -- Paul Ramsey Refractions Research http://www.refractions.net pramsey@... Phone: 250-383-3022 Cell: 250-885-0632 _______________________________________________ postgis-users mailing list postgis-users@... http://postgis.refractions.net/mailman/listinfo/postgis-users |
|
|
Re: GeomUnion problemhi Brent
Would just wrapping the call to GeomUnion with a call to Multi do the trick? From the docs: Multi(geometry) - Returns the geometry as a MULTI* geometry. If the geometry is already a MULTI*, it is returned unchanged. hth Rob Brent Wood wrote: > > Hi all, > > GEOS v3rc3 seems to have fixed the previous problem, but now I have another > one! > The usual Hydra like situation :-) > > geomunion() sometimes returns a multipolygon, & at other times it returns a > polygon, depending I guess, on what it finds when it does it's thing. > > Is it possible to force all the output to multipolygon, so both single polygons > & multi's can go in the same column? > > Or can I populate two columns, then somehow insert the polygons as multi's into > the multi column? > > I could do this by exporting as text, pass the file through awk/sed to turn > polygons into multi's, then insert them into the multi table. > > > I guess another approach might be a view unioning the two columns into one, as > the are both geometry datatypes as far as postgres is concerned, but this has > other impacts which are not very nice. > > Any suggestions/advice appreciated. > > > Thanks (again!) > > > Brent Wood > _______________________________________________ > 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: GeomUnion problem--- Rob Agar <robagar@...> wrote: > hi Brent > > Would just wrapping the call to GeomUnion with a call to Multi do the trick? > > From the docs: > Multi(geometry) - Returns the geometry as a MULTI* geometry. If the > geometry is already a MULTI*, it is returned unchanged. Thanks Paul & Rob, That seems absolutely perfect!!! (I'm running it right now with separate poly & multi columns, so I'll just update the multi column with the multi(poly) when it finishes.... Much appreciated guys!!! Cheers, Brent _______________________________________________ postgis-users mailing list postgis-users@... http://postgis.refractions.net/mailman/listinfo/postgis-users |
|
|
Re: GeomUnion problem
Hi, I have the same error (NOTICE: TopologyException: no outgoing dirEdge found (3.07069,50.2997,50.2997) SELECT failed: ERROR: GEOS union() threw an error!) with one of my requests (select GeomUnion(GeomFromText('POLYGON((3.064484 50.307842, 3.076605 50.291935, 3.076635 50.291958, 3.064514 50.307865, 3.064484 50.307842))')),('0103000000010000002500000095110D8268900840EB857D1B6226494065C5707500840840310BED9C6627494010ECF82F10840840E92ADD5D67274940D50500ADAC9008401B01558F5E2649407C596AA5A1910840009E184957264940946934B918A30840C576F700DD25494061C43E0114A308404E469561DC2549409835197DDF920840A415E5D84D264940EACE13CFD9A20840B743C362D4254940B7291E17D5A20840401361C3D3254940D33D81149A910840DFD35BBF562649401DED01CEC49008407EA0AE945C264940E5DD596BD490084014FACF4C5B2649400C40A374E99F084095F3C5DE8B254940BCE9961DE29F08405FB2F1608B254940BFECCD3EF39008404D568AC55826494003D29BEA16910840A34B88D85526494086FF7403059E0840274A42226D2549402672C119FC9D0840228D0A9C6C254940D784792179910840BE4344CA4D2649403EAE0D15E39C084065C746205E2549409487855AD39C0840ADA7565F5D2549406BC4EAB8CA900840067E390D5A2649408C04149994900840B84E57DB5D264940F4AFABFC92900840BBA67FF15D2649407C6308008E7D08400F2A711DE3264940A94BC631927D0840865AD3BCE3264940FC77D7715C900840394FFC2D60264940878BDCD3D57D0840DA39CD02ED264940BA30D28BDA7D0840516A2FA2ED26494055886B97599008400DD8ED0661264940E25817B7D1800840A9FB00A4362749402CF2EB87D8800840DE3CD521372749402D8F4D0160900840CBDCE48D6126494012C0CDE2C582084080272D5C56274940724D81CCCE82084086E464E25627494095110D8268900840EB857D1B62264940')). Each part is valid. I don't understand how I can solve this problem (and I'm French). ![]() |
|
|
Re: GeomUnion problem> Hi,
> > I have the same error (NOTICE: TopologyException: no outgoing dirEdge found > (3.07069,50.2997,50.2997) > SELECT failed: ERROR: GEOS union() threw an error!) with one of my requests > (select GeomUnion(GeomFromText('POLYGON((3.064484 50.307842, 3.076605 > 50.291935, 3.076635 50.291958, 3.064514 50.307865, 3.064484 > 50.307842))')),('0103000000010000002500000095110D8268900840EB857D1B6226494065C5707500840840310BED9C6627494010ECF82F10840840E92ADD5D67274940D50500ADAC9008401B01558F5E2649407C596AA5A1910840009E184957264940946934B918A30840C576F700DD25494061C43E0114A308404E469561DC2549409835197DDF920840A415E5D84D264940EACE13CFD9A20840B743C362D4254940B7291E17D5A20840401361C3D3254940D33D81149A910840DFD35BBF562649401DED01CEC49008407EA0AE945C264940E5DD596BD490084014FACF4C5B2649400C40A374E99F084095F3C5DE8B254940BCE9961DE29F08405FB2F1608B254940BFECCD3EF39008404D568AC55826494003D29BEA16910840A34B88D85526494086FF7403059E0840274A42226D2549402672C119FC9D0840228D0A9C6C254940D784792179910840BE4344CA4D2649403EAE0D15E39C084065C746205E2549409487855AD39C0840ADA7565F5D2549406BC4EAB8CA900840067E390D5A2649408C04149994900840B84E57DB5D264940F4AFABFC92900840BBA67FF15D2649407C6308008E7D08400F2A711DE3264940A94BC631927D0840865AD3BCE3264940FC77D7715C900840394FFC2D60264940878BDCD3D57D0840DA39CD02ED264940BA30D28BDA7D0840516A2FA2ED26494055886B97599008400DD8ED0661264940E25817B7D1800840A9FB00A4362749402CF2EB87D8800840DE3CD521372749402D8F4D0160900840CBDCE48D6126494012C0CDE2C582084080272D5C56274940724D81CCCE82084086E464E25627494095110D8268900840EB857D1B62264940')). > Each part is valid. I don't understand how I can solve this problem (and I'm > French). > :-| Works for me in this env (Mac OS X 10.4): PostgreSQL 8.2.3 on i386-apple-darwin8.8.1, compiled by GCC i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367) POSTGIS="1.2.1" GEOS="3.0.0rc4-CAPI-1.3.3" PROJ="Rel. 4.5.0, 22 Oct 2006" USE_STATS GEOS 3 is much more robust than older versions. result is: geomunion|?column? 0103000000010000000500000010ECF82F10840840E92ADD5D672749403EAE0D15E39C084065C746205E254940E9D495CFF29C08401DE736E15E254940BA1281EA1F840840A14ACD1E6827494010ECF82F10840840E92ADD5D67274940|0103000000010000002500000095110D8268900840EB857D1B6226494065C5707500840840310BED9C6627494010ECF82F10840840E92ADD5D67274940D50500ADAC9008401B01558F5E2649407C596AA5A1910840009E184957264940946934B918A30840C576F700DD25494061C43E0114A308404E469561DC2549409835197DDF920840A415E5D84D264940EACE13CFD9A20840B743C362D4254940B7291E17D5A20840401361C3D3254940D33D81149A910840DFD35BBF562649401DED01CEC49008407EA0AE945C264940E5DD596BD490084014FACF4C5B2649400C40A374E99F084095F3C5DE8B254940BCE9961DE29F08405FB2F1608B254940BFECCD3EF39008404D568AC55826494003D29BEA16910840A34B88D85526494086FF7403059E0840274A42226D2549402672C119FC9D0840228D0A9C6C254940D784792179910840BE4344CA4D2649403EAE0D15E39C084065C746205E2549409487855AD39C0840ADA7565F5D2549406BC4EAB8CA900840067E390D5A2649408C04149994900840B84E57DB5D264940F4AFABFC92900840BBA67FF15D2649407C6308008E7D08400F2A711DE3264940A94BC631927D0840865AD3BCE3264940FC77D7715C900840394FFC2D60264940878BDCD3D57D0840DA39CD02ED264940BA30D28BDA7D0840516A2FA2ED26494055886B97599008400DD8ED0661264940E25817B7D1800840A9FB00A4362749402CF2EB87D8800840DE3CD521372749402D8F4D0160900840CBDCE48D6126494012C0CDE2C582084080272D5C56274940724D81CCCE82084086E464E25627494095110D8268900840EB857D1B62264940 Nicolas _______________________________________________ postgis-users mailing list postgis-users@... http://postgis.refractions.net/mailman/listinfo/postgis-users |
|
|
Re: GeomUnion problemThanks I'm waiting a update from my root. He said me that GEOS'version isn't stable. EDIT : It's ok now. Thanks you very much ![]() |
|
|
Re: GeomUnion problemI have a new problem
![]() i=1 j=2 nbPoints=12 xA=3.448432 yA=50.316982 xB=3.448499 yB=50.316856 pente=-1.885714 xAlpha=3.439598 yAlpha=50.312298 xBeta=3.457267 yBeta=50.321667 xGamma=3.457334 yGamma=50.321541 xDelta=3.439665 yDelta=50.312172 maRequete= select GeomFromText('POLYGON((3.439598 50.312298, 3.457267 50.321667, 3.457334 50.321541, 3.439665 50.312172, 3.439598 50.312298))') I create a polygon with (xAlpha,yAlpha) (xBeta,yBeta) (xGamma, yGamma) (xDelta, yDelta) i=2 j=3 nbPoints=12 xA=3.448499 yA=50.316856 xB=3.448553 yB=50.316730 pente=-2.357143 xAlpha=3.439293 yAlpha=50.312950 xBeta=3.457705 yBeta=50.320763 xGamma=3.457758 yGamma=50.320637 xDelta=3.439347 yDelta=50.312824 maRequete= select GeomUnion(GeomFromText('POLYGON((3.439293 50.312950, 3.457705 50.320763, 3.457758 50.320637, 3.439347 50.312824, 3.439293 50.312950))'),'010300000001000000050000009818CBF44B840B40984D8061F9274940FC51D4997BA80B40E9995E622C29494079CA6ABA9EA80B405DA9674128294940159161156F840B400B5D8940F52749409818CBF44B840B40984D8061F9274940') I create a polygon which is the Union between the last polygon and a new polygon (with the new (xAlpha,yAlpha) (xBeta,yBeta) (xGamma, yGamma) (xDelta, yDelta)) i=3 j=4 nbPoints=12 xA=3.448553 yA=50.316730 xB=3.448587 yB=50.316605 pente=-3.641379 xAlpha=3.438910 yAlpha=50.314083 xBeta=3.458196 yBeta=50.319378 xGamma=3.458230 yGamma=50.319252 xDelta=3.438944 yDelta=50.313957 maRequete= select GeomUnion(GeomFromText('POLYGON((3.438910 50.314083, 3.458196 50.319378, 3.458230 50.319252, 3.438944 50.313957, 3.438910 50.314083))'),'0103000000010000000D000000D2E4620CAC830B4040A4DFBE0E2849408F28E45468930B4011B4D79479284940FC51D4997BA80B40E9995E622C29494079CA6ABA9EA80B405DA96741282949406E06C9F487960B40D5BEE1C98E284940B6B9313D61A90B40286211C30E294940E4DBBB067DA90B409B711AA20A294940F4B7E4A6A7930B401564116376284940159161156F840B400B5D8940F52749409818CBF44B840B40984D8061F92749403AD870DA87900B4022508D2C6128494005C4245CC8830B40B3B3E89D0A284940D2E4620CAC830B4040A4DFBE0E284940') I create a polygon which is the Union between the last polygon and a new polygon (with the new (xAlpha,yAlpha) (xBeta,yBeta) (xGamma, yGamma) (xDelta, yDelta)) i=4 j=5 nbPoints=12 xA=3.448587 yA=50.316605 xB=3.448622 yB=50.316479 pente=-3.641379 xAlpha=3.438944 yAlpha=50.313957 xBeta=3.458230 yBeta=50.319252 xGamma=3.458265 yGamma=50.319126 xDelta=3.438979 yDelta=50.313831 maRequete= select GeomUnion(GeomFromText('POLYGON((3.438944 50.313957, 3.458230 50.319252, 3.458265 50.319126, 3.438979 50.313831, 3.438944 50.313957))'),'010300000001000000140000005019FF3EE3820B40629D2ADF3328494057FBAA3D1B940B407505B6827F284940FC51D4997BA80B40E9995E622C29494079CA6ABA9EA80B405DA96741282949406E06C9F487960B40D5BEE1C98E284940B6B9313D61A90B40286211C30E294940E4DBBB067DA90B409B711AA20A2949400F4B7436A2960B40C486BE9C8A2849409E4319AA62AA0B40EC87D860E12849405F5E807D74AA0B405F97E13FDD2849404C9EEE98C8940B405925F70C7E284940F4B7E4A6A7930B401564116376284940159161156F840B400B5D8940F52749409818CBF44B840B40984D8061F92749403AD870DA87900B4022508D2C6128494005C4245CC8830B40B3B3E89D0A284940D2E4620CAC830B4040A4DFBE0E28494045964C0CC0920B4023AA481E7528494011346612F5820B40D6AC33BE2F2849405019FF3EE3820B40629D2ADF33284940') I create a polygon which is the Union between the last polygon and a new polygon (with the new (xAlpha,yAlpha) (xBeta,yBeta) (xGamma, yGamma) (xDelta, yDelta)) i=5 j=6 nbPoints=12 xA=3.448622 yA=50.316479 xB=3.448644 yB=50.316410 pente=-3.130435 xAlpha=3.439096 yAlpha=50.313435 xBeta=3.458148 yBeta=50.319523 xGamma=3.458169 yGamma=50.319454 xDelta=3.439118 yDelta=50.313366 maRequete= select GeomUnion(GeomFromText('POLYGON((3.439096 50.313435, 3.458148 50.319523, 3.458169 50.319454, 3.439118 50.313366, 3.439096 50.313435))'),'0103000000030000001500000011346612F5820B40D6AC33BE2F2849405019FF3EE3820B40629D2ADF3328494057FBAA3D1B940B407505B6827F284940FC51D4997BA80B40E9995E622C29494079CA6ABA9EA80B405DA96741282949406E06C9F487960B40D5BEE1C98E284940B6B9313D61A90B40286211C30E294940E4DBBB067DA90B409B711AA20A2949400F4B7436A2960B40C486BE9C8A2849409E4319AA62AA0B40EC87D860E12849405F5E807D74AA0B405F97E13FDD28494026361FD786AA0B40D2A6EA1ED9284940789609E43A930B40834756C872284940159161156F840B400B5D8940F52749409818CBF44B840B40984D8061F92749403AD870DA87900B4022508D2C6128494005C4245CC8830B40B3B3E89D0A284940D2E4620CAC830B4040A4DFBE0E284940E53F1D66E5900B408912A98768284940D80B056C07830B4049BC3C9D2B28494011346612F5820B40D6AC33BE2F2849400400000011346612F5820B40D6AC33BE2F284940F4954C0CC0920B4021AA481E7528494045964C0CC0920B4023AA481E7528494011346612F5820B40D6AC33BE2F284940040000005F5E807D74AA0B405F97E13FDD2849404C9EEE98C8940B405925F70C7E284940289EEE98C8940B405825F70C7E2849405F5E807D74AA0B405F97E13FDD284940') I create a polygon which is the Union between the last polygon and a new polygon (with the new (xAlpha,yAlpha) (xBeta,yBeta) (xGamma, yGamma) (xDelta, yDelta)) i=6 j=7 nbPoints=12 xA=3.448644 yA=50.316410 xB=3.448675 yB=50.316334 pente=-2.461538 xAlpha=3.439379 yAlpha=50.312645 xBeta=3.457908 yBeta=50.320175 xGamma=3.457939 yGamma=50.320099 xDelta=3.439410 yDelta=50.312569 maRequete= select GeomUnion(GeomFromText('POLYGON((3.439379 50.312645, 3.457908 50.320175, 3.457939 50.320099, 3.439410 50.312569, 3.439379 50.312645))'),'0103000000050000001F000000726F7EC344830B40FC3559A31E2849406A106567618E0B408A17447357284940E53F1D66E5900B408912A98768284940D80B056C07830B4049BC3C9D2B28494011346612F5820B40D6AC33BE2F2849405019FF3EE3820B40629D2ADF3328494057FBAA3D1B940B407505B6827F284940FC51D4997BA80B40E9995E622C29494079CA6ABA9EA80B405DA96741282949406E06C9F487960B40D5BEE1C98E284940B6B9313D61A90B40286211C30E294940E4DBBB067DA90B409B711AA20A2949400F4B7436A2960B40C486BE9C8A284940021CB96116A30B40F01BCF51C12849408DD2A57F49AA0B40EFA83121E62849400454388254AA0B40C74961DEE32849400A1DBFEE88A60B40F312B376D02849409E4319AA62AA0B40EC87D860E12849405F5E807D74AA0B405F97E13FDD28494026361FD786AA0B40D2A6EA1ED92849400D194B08359A0B4051E08A6E91284940E653874BBD910B40B2D7DF2266284940159161156F840B400B5D8940F52749409818CBF44B840B40984D8061F927494014BB6C572B900B40CD54AE1B5E284940107ED7DFCD8F0B40494DC83D5C28494005C4245CC8830B40B3B3E89D0A284940D2E4620CAC830B4040A4DFBE0E2849400395916CE58C0B40951B665F4D284940EFAD484C50830B40D4D688601C284940726F7EC344830B40FC3559A31E2849400400000011346612F5820B40D6AC33BE2F284940F4954C0CC0920B4021AA481E7528494045964C0CC0920B4023AA481E7528494011346612F5820B40D6AC33BE2F284940040000005F5E807D74AA0B405F97E13FDD2849405883DA9460A00B402DE7CBFAB02849401883DA9460A00B402CE7CBFAB02849405F5E807D74AA0B405F97E13FDD28494004000000EB7E152F7A920B40B2EE68656C2849405FF8184EC1960B400CEA7B4482284940789609E43A930B40834756C872284940EB7E152F7A920B40B2EE68656C2849400500000088826571ED9C0B40211C53D3A1284940DD826571ED9C0B40231C53D3A12849404C9EEE98C8940B405925F70C7E284940289EEE98C8940B405825F70C7E28494088826571ED9C0B40211C53D3A1284940') I create a polygon which is the Union between the last polygon and a new polygon (with the new (xAlpha,yAlpha) (xBeta,yBeta) (xGamma, yGamma) (xDelta, yDelta)) i=7 j=8 nbPoints=12 xA=3.448675 yA=50.316334 xB=3.448710 yB=50.316265 pente=-1.920000 xAlpha=3.439806 yAlpha=50.311714 xBeta=3.457544 yBeta=50.320953 xGamma=3.457580 yGamma=50.320885 xDelta=3.439841 yDelta=50.311646 maRequete= select GeomUnion(GeomFromText('POLYGON((3.439806 50.311714, 3.457544 50.320953, 3.457580 50.320885, 3.439841 50.311646, 3.439806 50.311714))'),'01030000000700000028000000BB641C23D9830B40042159C004284940D74D9B7D818B0B40B15C098B3628494014BB6C572B900B40CD54AE1B5E284940107ED7DFCD8F0B40494DC83D5C28494005C4245CC8830B40B3B3E89D0A284940D2E4620CAC830B4040A4DFBE0E2849400395916CE58C0B40951B665F4D284940EFAD484C50830B40D4D688601C284940726F7EC344830B40FC3559A31E2849406A106567618E0B408A17447357284940E53F1D66E5900B408912A98768284940D80B056C07830B4049BC3C9D2B28494011346612F5820B40D6AC33BE2F2849405019FF3EE3820B40629D2ADF3328494057FBAA3D1B940B407505B6827F284940FC51D4997BA80B40E9995E622C29494079CA6ABA9EA80B405DA96741282949406E06C9F487960B40D5BEE1C98E284940B6B9313D61A90B40286211C30E294940E4DBBB067DA90B409B711AA20A2949400F4B7436A2960B40C486BE9C8A284940394A7DC22F9C0B40EB8C5901A3284940399D64ABCBA90B4097FF907EFB284940E98024ECDBA90B40BC3D0801F9284940E07D7817909D0B4050FF140DA9284940021CB96116A30B40F01BCF51C12849408DD2A57F49AA0B40EFA83121E62849400454388254AA0B40C74961DEE32849400A1DBFEE88A60B40F312B376D02849409E4319AA62AA0B40EC87D860E12849405F5E807D74AA0B405F97E13FDD28494026361FD786AA0B40D2A6EA1ED92849400D194B08359A0B4051E08A6E9128494019993463E9980B40C38ED6CE8A284940A8417830B68C0B40D7050E7B3B284940159161156F840B400B5D8940F52749409818CBF44B840B40984D8061F927494050D11E770A8A0B405C39511D2A2849406B48DC63E9830B40295FD04202284940BB641C23D9830B40042159C0042849400400000011346612F5820B40D6AC33BE2F284940F4954C0CC0920B4021AA481E7528494045964C0CC0920B4023AA481E7528494011346612F5820B40D6AC33BE2F284940040000005F5E807D74AA0B405F97E13FDD2849401883DA9460A00B402CE7CBFAB02849405883DA9460A00B402DE7CBFAB02849405F5E807D74AA0B405F97E13FDD284940040000005FBEF4362D8E0B402D29C6E84728494094804067D2960B404B10751F80284940E653874BBD910B40B2D7DF22662849405FBEF4362D8E0B402D29C6E84728494005000000E0186991159A0B4038F4E5559528494001196991159A0B4039F4E555952849404C9EEE98C8940B405925F70C7E284940289EEE98C8940B405825F70C7E284940E0186991159A0B4038F4E5559528494005000000A14C64E6759B0B409E66A1619B284940894C64E6759B0B409D66A1619B28494088826571ED9C0B40211C53D3A1284940DD826571ED9C0B40231C53D3A1284940A14C64E6759B0B409E66A1619B28494004000000EB7E152F7A920B40B2EE68656C2849405FF8184EC1960B400CEA7B4482284940789609E43A930B40834756C872284940EB7E152F7A920B40B2EE68656C284940') I create a polygon which is the Union between the last polygon and a new polygon (with the new (xAlpha,yAlpha) (xBeta,yBeta) (xGamma, yGamma) (xDelta, yDelta)) i=8 j=9 nbPoints=12 xA=3.448710 yA=50.316265 xB=3.448770 yB=50.316189 pente=-1.290323 xAlpha=3.440806 yAlpha=50.310139 xBeta=3.456614 yBeta=50.322392 xGamma=3.456674 yGamma=50.322315 xDelta=3.440866 yDelta=50.310062 maRequete= select GeomUnion(GeomFromText('POLYGON((3.440806 50.310139, 3.456614 50.322392, 3.456674 50.322315, 3.440866 50.310062, 3.440806 50.310139))'),'0103000000090000003100000036AD1402B9840B4049DA8D3EE6274940C65D9F23E6960B4001D791B87D284940A8417830B68C0B40D7050E7B3B284940159161156F840B400B5D8940F52749409818CBF44B840B40984D8061F927494050D11E770A8A0B405C39511D2A2849406B48DC63E9830B40295FD04202284940BB641C23D9830B40042159C004284940D74D9B7D818B0B40B15C098B3628494014BB6C572B900B40CD54AE1B5E284940107ED7DFCD8F0B40494DC83D5C28494005C4245CC8830B40B3B3E89D0A284940D2E4620CAC830B4040A4DFBE0E2849400395916CE58C0B40951B665F4D284940EFAD484C50830B40D4D688601C284940726F7EC344830B40FC3559A31E2849406A106567618E0B408A17447357284940E53F1D66E5900B408912A98768284940D80B056C07830B4049BC3C9D2B28494011346612F5820B40D6AC33BE2F2849405019FF3EE3820B40629D2ADF3328494057FBAA3D1B940B407505B6827F284940FC51D4997BA80B40E9995E622C29494079CA6ABA9EA80B405DA96741282949406E06C9F487960B40D5BEE1C98E284940EF3FE19B91A30B405443D34EE728494023D923D40CA90B40CC46E7FC14294940F06DFAB31FA90B4073637AC2122949405050868F68A50B40C65558CCF3284940B6B9313D61A90B40286211C30E294940E4DBBB067DA90B409B711AA20A29494042CECD4141A20B401750DC84D928494044777C7F2F9B0B40AC1DA39B9E284940394A7DC22F9C0B40EB8C5901A3284940399D64ABCBA90B4097FF907EFB284940E98024ECDBA90B40BC3D0801F9284940E07D7817909D0B4050FF140DA9284940021CB96116A30B40F01BCF51C12849408DD2A57F49AA0B40EFA83121E62849400454388254AA0B40C74961DEE32849400A1DBFEE88A60B40F312B376D02849409E4319AA62AA0B40EC87D860E12849405F5E807D74AA0B405F97E13FDD28494026361FD786AA0B40D2A6EA1ED92849400D194B08359A0B4051E08A6E9128494019993463E9980B40C38ED6CE8A28494010EEB56072980B40CD1A02C987284940FD84B35BCB840B40F1F62004E427494036AD1402B9840B4049DA8D3EE62749400400000011346612F5820B40D6AC33BE2F284940F4954C0CC0920B4021AA481E7528494045964C0CC0920B4023AA481E7528494011346612F5820B40D6AC33BE2F284940040000005F5E807D74AA0B405F97E13FDD2849401883DA9460A00B402CE7CBFAB02849405883DA9460A00B402DE7CBFAB02849405F5E807D74AA0B405F97E13FDD284940050000006654AE3157990B40147B9E11922849408254AE3157990B40147B9E11922849404C9EEE98C8940B405925F70C7E284940289EEE98C8940B405825F70C7E2849406654AE3157990B40147B9E119228494004000000242A2744779A0B4020E756729B28494052F53F706AA00B403E401208CD2849400F4B7436A2960B40C486BE9C8A284940242A2744779A0B4020E756729B284940050000007BC838640F9A0B400C12C43A952849405FC838640F9A0B400B12C43A95284940E0186991159A0B4038F4E5559528494001196991159A0B4039F4E555952849407BC838640F9A0B400C12C43A95284940040000005FBEF4362D8E0B402D29C6E84728494094804067D2960B404B10751F80284940E653874BBD910B40B2D7DF22662849405FBEF4362D8E0B402D29C6E84728494005000000A14C64E6759B0B409E66A1619B284940894C64E6759B0B409D66A1619B28494088826571ED9C0B40211C53D3A1284940DD826571ED9C0B40231C53D3A1284940A14C64E6759B0B409E66A1619B28494004000000EB7E152F7A920B40B2EE68656C2849405FF8184EC1960B400CEA7B4482284940789609E43A930B40834756C872284940EB7E152F7A920B40B2EE68656C284940') NOTICE: TopologyException: found non-noded intersection between 3.44871 50.3163, 3.44945 50.3168 and 3.44765 50.3163, 3.44945 50.3168 3.44945 50.3168 SELECT failed: ERROR: GEOS union() threw an error! I tried this request : select isvalid(GeomFromText('POLYGON((3.440806 50.310139, 3.456614 50.322392, 3.456674 50.322315, 3.440866 50.310062, 3.440806 50.310139))')), isvalid('0103000000090000003100000036AD1402B9840B4049DA8D3EE6274940C65D9F23E6960B4001D791B87D284940A8417830B68C0B40D7050E7B3B284940159161156F840B400B5D8940F52749409818CBF44B840B40984D8061F927494050D11E770A8A0B405C39511D2A2849406B48DC63E9830B40295FD04202284940BB641C23D9830B40042159C004284940D74D9B7D818B0B40B15C098B3628494014BB6C572B900B40CD54AE1B5E284940107ED7DFCD8F0B40494DC83D5C28494005C4245CC8830B40B3B3E89D0A284940D2E4620CAC830B4040A4DFBE0E2849400395916CE58C0B40951B665F4D284940EFAD484C50830B40D4D688601C284940726F7EC344830B40FC3559A31E2849406A106567618E0B408A17447357284940E53F1D66E5900B408912A98768284940D80B056C07830B4049BC3C9D2B28494011346612F5820B40D6AC33BE2F2849405019FF3EE3820B40629D2ADF3328494057FBAA3D1B940B407505B6827F284940FC51D4997BA80B40E9995E622C29494079CA6ABA9EA80B405DA96741282949406E06C9F487960B40D5BEE1C98E284940EF3FE19B91A30B405443D34EE728494023D923D40CA90B40CC46E7FC14294940F06DFAB31FA90B4073637AC2122949405050868F68A50B40C65558CCF3284940B6B9313D61A90B40286211C30E294940E4DBBB067DA90B409B711AA20A29494042CECD4141A20B401750DC84D928494044777C7F2F9B0B40AC1DA39B9E284940394A7DC22F9C0B40EB8C5901A3284940399D64ABCBA90B4097FF907EFB284940E98024ECDBA90B40BC3D0801F9284940E07D7817909D0B4050FF140DA9284940021CB96116A30B40F01BCF51C12849408DD2A57F49AA0B40EFA83121E62849400454388254AA0B40C74961DEE32849400A1DBFEE88A60B40F312B376D02849409E4319AA62AA0B40EC87D860E12849405F5E807D74AA0B405F97E13FDD28494026361FD786AA0B40D2A6EA1ED92849400D194B08359A0B4051E08A6E9128494019993463E9980B40C38ED6CE8A28494010EEB56072980B40CD1A02C987284940FD84B35BCB840B40F1F62004E427494036AD1402B9840B4049DA8D3EE62749400400000011346612F5820B40D6AC33BE2F284940F4954C0CC0920B4021AA481E7528494045964C0CC0920B4023AA481E7528494011346612F5820B40D6AC33BE2F284940040000005F5E807D74AA0B405F97E13FDD2849401883DA9460A00B402CE7CBFAB02849405883DA9460A00B402DE7CBFAB02849405F5E807D74AA0B405F97E13FDD284940050000006654AE3157990B40147B9E11922849408254AE3157990B40147B9E11922849404C9EEE98C8940B405925F70C7E284940289EEE98C8940B405825F70C7E2849406654AE3157990B40147B9E119228494004000000242A2744779A0B4020E756729B28494052F53F706AA00B403E401208CD2849400F4B7436A2960B40C486BE9C8A284940242A2744779A0B4020E756729B284940050000007BC838640F9A0B400C12C43A952849405FC838640F9A0B400B12C43A95284940E0186991159A0B4038F4E5559528494001196991159A0B4039F4E555952849407BC838640F9A0B400C12C43A95284940040000005FBEF4362D8E0B402D29C6E84728494094804067D2960B404B10751F80284940E653874BBD910B40B2D7DF22662849405FBEF4362D8E0B402D29C6E84728494005000000A14C64E6759B0B409E66A1619B284940894C64E6759B0B409D66A1619B28494088826571ED9C0B40211C53D3A1284940DD826571ED9C0B40231C53D3A1284940A14C64E6759B0B409E66A1619B28494004000000EB7E152F7A920B40B2EE68656C2849405FF8184EC1960B400CEA7B4482284940789609E43A930B40834756C872284940EB7E152F7A920B40B2EE68656C284940') Answer : t;f I don't understand how the second polygon can be invalid ![]() |
|
|
Re: GeomUnion problem>
> I don't understand how the second polygon can be invalid :O > -- Looks strange in Jump, at the given error point as stated by postgis: Self-intersection at or near point 3.44863 50.3166 I marked the self-intersection caused by two adjacent vertices in the attached images Nicolas _______________________________________________ postgis-users mailing list postgis-users@... http://postgis.refractions.net/mailman/listinfo/postgis-users |
|
|
Re: GeomUnion problemThanks, I understand.
I download an example of what I want. union.png I think I need to change the structure of the result. I'm angry, I thinked to have find a very good solution and I must change a big part of my program ![]() |
| Free embeddable forum powered by Nabble | Forum Help |