[postgis-users] Problem using ST_snap

Åsmund Tokheim asmundto at gmail.com
Wed Sep 24 16:23:14 PDT 2014


Hi Alexandre

What you have to be aware of is the subtle difference between snapping to a
vertex and a geometry edge. As I understand the documentation, ST_snap will
behave differently when snapping to a ordinary linestring and the same
linestring defined with multiple redundant vertices (e.g. LINESTRING(0 0, 0
1, 0 3)). If the polygons in your table are huge and mostly straight, you
might get something closer to your intended effect by adding coordinates
along the edges of your polygons.

Åsmund

On Wed, Sep 24, 2014 at 2:04 PM, Alexandre Neto <senhor.neto at gmail.com>
wrote:

> Hi Rémi,
>
> I'm not sure If I understood your answer correctly. In the documentation
> of ST_snap() <http://postgis.org/docs/ST_Snap.html> there are some simple
> examples showing a polygon vertex snapping to a near by linestring (or it's
> vertex). Shouldn't this be the same case.
>
> The documentation says nothing about the use of geometry collections,
> maybe that's the problem?
>
> Thanks,
>
> Alexandre Neto
>
> On Wed, Sep 24, 2014 at 12:46 PM, Rémi Cura <remi.cura at gmail.com> wrote:
>
>> Hey,
>> snap is deceiptively named.
>> As far as I know It just snaps points to points (or points in geometry to
>> points in geometry).
>> For exemple, if you draw 2 square side by side, one being bigger than the
>> other, and separate theim with small distance, snap will do nothing.
>> Cheers,
>> Rémi-C
>>
>> 2014-09-24 13:41 GMT+02:00 Alexandre Neto <senhor.neto at gmail.com>:
>>
>>> Hello all,
>>>
>>> I have to tables in postgis. table one has a set of adjacent polygons
>>> that covers all my area o interest, while table to have a few polygons
>>> across the same area.
>>>
>>> Some boundaries of table 2 should snap to the table 1 polygons, but they
>>> don't.
>>>
>>> I'm trying to use st_snap to correct this, but I'm not being able to do
>>> it. There are vertices that "refuse" to change while other (just a few do).
>>> I'm already using a very big tolerance.
>>>
>>>  Therefore I need your help to see if my query looks correct or not.
>>>
>>>
>>> WITH snap_grid as
>>> (
>>> SELECT
>>>     St_Collect(f.geom) as geom
>>> FROM
>>>     table_1 as f
>>> )
>>> SELECT
>>>     r.gid, st_snap(r.geom,q.geom,10) as geom
>>> FROM
>>>     table2 as r,
>>>     snap_grid as q
>>> WHERE r.gid = 53
>>>
>>> I already tried dumping all point form the table 1 polygons, but the
>>> result is "similar".
>>>
>>> Thanks in advance,
>>>
>>> Alexandre Neto
>>>
>>> _______________________________________________
>>> postgis-users mailing list
>>> postgis-users at lists.osgeo.org
>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>>
>>
>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at lists.osgeo.org
>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20140925/84f0bdb4/attachment.html>


More information about the postgis-users mailing list