# [postgis-users] Different polygon produced from the same poi nts

Gasperi Jerome jerome.gasperi at cnes.fr
Mon Apr 4 04:48:53 PDT 2005

```Hi,

According to the postgis documentation :

The "~" operator returns true if A's bounding box completely contains B's bounding box.

The result you get is then coherent since point X is within the bounding box of your 2 diagrams.

For a "true" contains test, you sould use one of these operators :

contains(geometry, geometry)
within(geometry, geometry)
distance(geometry,geometry) equals to zero

Regards

Jrom

-----Message d'origine-----
De : Tim Poh [mailto:tim.poh at gmail.com]
Envoyé : lundi 4 avril 2005 12:25
À : postgis-users at postgis.refractions.net
Objet : [postgis-users] Different polygon produced from the same points

Hi,

I'm new to Postgis and are currently evaluating it. When creating a polygon, i've come across a situation where there could be 2 (or more in othe case) different shape of polygons defined by the same set of points. The 2 diagrams below are created with these SQL insert statements,

INSERT INTO gtest (ID, NAME, GEOM) VALUES (5, 'diagram1', GeomFromText('POLYGON((5 4,5 5,4 4,3 5,3 4,4 3,5 4))', -1));

INSERT INTO gtest (ID, NAME, GEOM) VALUES (6, 'diagram2', GeomFromText('POLYGON((5 4,4 4,5 5,3 5,3 4,4 3,5 4))', -1));

Diagram 1
---------

A @----------@ B
/            /
/            /
/            /
/            /
F @        C @  @ <--- Point X
\            \
\            \
\            \
\            \
E @----------@ D

Diagram 2
---------

A @-------       @ B
/         |       /|
/           |     /  |
/             |   /    |
/               | /      |
F @         C @      |
\                        |
\                      |
\                    |
\                  |
E @--------------@ D

Now, i'm trying to test the Contain function (~) to test if a point X (shown in diagram 1) is within the polygon. Obviously from the diagram above, Point X is within diagram 2 and not diagram 1. However, my query shows that it is within BOTH polygons,

SELECT name from gtest
WHERE PointFromText( 'POINT(4 4.5)', -1 ) && gtest.geom
AND gtest.geom ~ PointFromText('POINT(4 4.5)',-1);

Now, my question is, could anyone explain such behavior stemming from the above query ? Does postgis recognize the above different polygon shapes due the the sequence of LAT/LONG entered as shown in the INSERT statements above ? Thanks. _______________________________________________
postgis-users mailing list postgis-users at postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users

```