[postgis-users] Does ST_AsText truncate or round
Paragon Corporation
lr at pcorp.us
Fri May 16 09:49:44 PDT 2008
Kevin,
Actually this would help me with the second phase, but for the first phase I
just need consistency which I was hoping AsText would do for me. It doesn't
even need to be that good since I'm sure the other side is using AsText in
some fashion. So I just need consistency more than correctness.
Where I start off with
Orginal geometry X
I think I need to guarantee that
X = GeomFromText(AsText(X))
Seemed like the easiest way to assure that was to just force all my Xs to X
= ST_GeomFromText(AsText(X), somesrid) which I presume should be the same
as
ST_SetSRID(AsText(X), somesrid)
The back end editor I'm assuming is just taking the AsText(geometry)
representation and just returning that back when no edits on a particular
point, and so its being poisoned by its own database query. I'm not
working on that part so that's just my general observation.
Thanks,
Regina
-----Original Message-----
From: postgis-users-bounces at postgis.refractions.net
[mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Kevin
Neufeld
Sent: Friday, May 16, 2008 11:15 AM
To: PostGIS Users Discussion
Subject: Re: [postgis-users] Does ST_AsText truncate or round
Have you considered using ST_SnapToGrid() and make all geometries in you
database respect a specified tolerance?
Warning, snaptogrid may not behave as you might expect - this is not a
simple precision_reducer method (which I think would be valuable).
Consider:
select
'POINT(0.877 0.778)'::geometry ~=
snaptogrid('POINT(0.87689017271623 0.777984935324639)'::geometry, 0.001);
?column?
----------
t
(1 row)
No problem there, but then there's this:
select
'POINT(0.956 0.66)'::geometry ~=
snaptogrid('POINT(0.956079571507871 0.659502930939198)'::geometry,
0.001);
?column?
----------
f
(1 row)
To deal with this (I know it looks like a hack, but it works), I convert to
text and then back to a geometry. Wrapping this in a trigger on your
geometry tables will guarantee any geometry edits are automatically reduced
to a certain precision.
select
'POINT(0.956 0.66)'::geometry ~=
geomfromtext(astext(snaptogrid('POINT(0.956079571507871
0.659502930939198)'::geometry, 0.001)), -1);
?column?
----------
t
(1 row)
Cheers,
Kevin
Paragon Corporation wrote:
> Slight clarification about what I am trying to solve.
>
> After edits I am coming back with lines that used to be intersecting
> no longer intersecting and that still have the same AsText representation.
>
> My hope is to reduce the precision of my geometry in the database so
> the edits don't break the topology of my lines by doing something like
> this
>
>
> Update sometable
> SET the_geom = ST_SetSRID(ST_AsText(the_geom), mysrid)
>
>
> But I fear that if AsText is doing a rounding rather than a
> truncation, that I run the risk of breaking things that used to
> intersect. I am more concerned about under intersecting than over
> intersecting. Although I probably haven't thought this out enough so
maybe it's a non-issue.
>
> Thanks,
> Regina
>
>
>
> -----Original Message-----
> From: postgis-users-bounces at postgis.refractions.net
> [mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of
> Paragon Corporation
> Sent: Friday, May 16, 2008 12:01 AM
> To: 'PostGIS Users Discussion'
> Subject: [postgis-users] Does ST_AsText truncate or round
>
> Hopefully this is a simple question. I know that ST_AsText returns a
> geometry that is not necessarily as prescise as what is actually
> stored in the geometry field. I have an editor that relies on WKT
representation.
>
> Anyrate just wanted to know if the ST_AsText does a rounding of the
> points or it does a truncation of the points. Also would be nice to
> know if I could control the precision of this since I will need to
> truncate my actual geometry accordingly so that both are in agreement.
>
> Thanks,
> Regina
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
postgis-users at postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users
More information about the postgis-users
mailing list