[postgis-users] Quick/unobstrusive way to determine if a geometry has curve elements?

Paul Ramsey pramsey at cleverelephant.ca
Tue May 5 09:31:47 PDT 2015


ST_HasArc() should do what you want

On Tue, May 5, 2015 at 1:52 AM, Andrea Aime
<andrea.aime at geo-solutions.it> wrote:
> Hi,
> I have some generic build of code that are building queries to postgis
> includingthe st_simplify function, e.g:
>
> select st_simplify(geometry, tolerance) from mytable where ...
>
> This is done to optimize data transfer and overall performance when doing
> map rendering, we just get the
> geometries as "complex" as we need them to.
>
> However, I've found out that the function does not support curved
> geometries, all will throw an error if it
> encounters one of them, e.g.:
>
>> select st_simplify(geometry, 0.1) from curves;
> ERROR:  lwgeom_simplify: unsupported geometry type: CircularString
>
> Curved geometries are often representing a small percentage of the
> geometries, so I would like
> to keep on simplifying the geometries made of straight segments, while
> skipping simplification
> on the curved ones, so I'm looking for a way to quickly and unobstrusively
> check if geometry
> has curved portions inside of it.
>
> So far I've come up with this, but it's not simple, unobstrusive, probably
> not so fast due to string
> comparisons, and not general (what if I stumble into a geometry collection
> that does contain
> curve elements for example?):
>
> select case geometrytype(geometry) when 'CIRCULARSTRING' then geometry
>          when 'COMPOUNDCURVE' then geometry
>          when 'CURVEPOLYGON' then geometry
>          when 'MULTISURFACE' then geometry
>          when 'MULTICURVE' then geometry
>          else st_simplify(geometry,0.1)
>          end
> from curves;
>
> Can anybody suggest a better way, that would not require us to have the end
> user tell
> us if a table mixes in curve bits, or not?
>
> Cheers
> Andrea
>
> --
> ==
> GeoServer Professional Services from the experts! Visit
> http://goo.gl/NWWaa2 for more information.
> ==
>
> Ing. Andrea Aime
> @geowolf
> Technical Lead
>
> GeoSolutions S.A.S.
> Via Poggio alle Viti 1187
> 55054  Massarosa (LU)
> Italy
> phone: +39 0584 962313
> fax: +39 0584 1660272
> mob: +39  339 8844549
>
> http://www.geo-solutions.it
> http://twitter.com/geosolutions_it
>
> AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
>
> Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i
> file/s allegato/i sono da considerarsi strettamente riservate. Il loro
> utilizzo è consentito esclusivamente al destinatario del messaggio, per le
> finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio
> senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia
> via e-mail e di procedere alla distruzione del messaggio stesso,
> cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo
> anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per
> finalità diverse, costituisce comportamento contrario ai principi dettati
> dal D.Lgs. 196/2003.
>
>
>
> The information in this message and/or attachments, is intended solely for
> the attention and use of the named addressee(s) and may be confidential or
> proprietary in nature or covered by the provisions of privacy act
> (Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
> Code).Any use not in accord with its purpose, any disclosure, reproduction,
> copying, distribution, or either dissemination, either whole or partial, is
> strictly forbidden except previous formal approval of the named
> addressee(s). If you are not the intended recipient, please contact
> immediately the sender by telephone, fax or e-mail and delete the
> information in this message that has been received in error. The sender does
> not give any warranty or accept liability as the content, accuracy or
> completeness of sent messages and accepts no responsibility  for changes
> made after they were sent or for other risks which arise as a result of
> e-mail transmission, viruses, etc.
>
>
> -------------------------------------------------------
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users


More information about the postgis-users mailing list