[postgis-users] Problem with ST_Within, Polygons and Multipolygons

Jorge Arévalo jorge.arevalo at gmail.com
Tue May 5 10:09:50 PDT 2009


Ok, I'll send the needed WKTs and my query, as Martin Said. But I have to
talk with my supervisor, because I've some doubts about data's privacy. If
is useful, I tested the method "ST_isvalid" with the multipolygon and
returns "false". Maybe the multipolygon is not closed? I loaded the data
from a shapefile. Is it possible to create a "non-valid" multipolygon? Does
PostGIS accept this?

Ok, being even more specific. I'm working with data about Spain. I have a
HUGE multipolygon that represents "water" (this is, the coasts around Spain
and its islands). Then, the "holes" inside this multypolygon have the shape
of Spain, Balearic Islands and Canary Islands. Of course, I have more
multipolygons that represent "forests", "airports", "cities", etc, that fit
into these holes.

Really, my problem is with some points that belong to an airport in an
island. Using "ST_Within" and "ST_Contains", the result is that these points
belong to the multipolygon "airport" and multipolygon "water" at same time.
Obviously, the island (and its airport) is surrounded by water, but the
airport's points shouldn't be part of the multopolygon "water". And, as I
said, when I apply "ST_isvalid" to the multipolygon "water", returns false.
Maybe is not closed?

Oh, btw, what's the difference between "ST_Within" and "Within". Does
"ST_Within" use index instead of geometry? Am I right?

Many thanks, I'll provide more data asap

On Tue, May 5, 2009 at 6:24 PM, Paul Ramsey <pramsey at opengeo.org> wrote:

> If ST_Contains() is returning both polygons then there's probably
> something wrong with the forest polygon (it doesn't have a hole, or it
> has both a polygon that has a hole and another component that *is* the
> hole, etc).
>
> P
>
> On Tue, May 5, 2009 at 9:19 AM, Martin Davis <mbdavis at refractions.net>
> wrote:
> > Polygons do not contain their holes.  For a point P in a MultiPolygon M
> > which is inside a hole in one of the component Polygons you should have:
> >
> > ST_within(P, M) = false
> > ST_contains(M, P) = false
> >
> > Best to post your WKT and your query to confirm that's the problem.
> >
> > Jorge wrote:
> >>
> >> Hello,
> >>
> >> I have a question. If a multipolygon has inner "holes", are these holes
> >> part of the multipolygon? I mean, if I want to check if a given point is
> >> inside of a multipolygon (using "within" or "contains") and this point
> >> is in the hole, should "within" and "contains" return "true"?
> >>
> >> Being more specific, I have a multypolygon that represents a forest, in
> >> a map. This multipolygon has a hole inside. Then, I have another
> >> multipolygon that fits exactly into the hole, and represents an airport.
> >> If I select a point from the airport, this point is inside the second
> >> multipolygon, of course, but should it be inside the first one too?
> >> Because my problem is that I have to decide if the point is part of the
> >> airport or part of the forest, and "within" and "contains" methods
> >> return both multipolygon, instead of only the second one (the airport).
> >>
> >> Maybe is more clear with an image:
> >> http://www.nebulared.com/tmp_geo/multipolygon.jpg
> >>
> >> Thanks in advance!
> >>
> >> Regards
> >> Jorge
> >> _______________________________________________
> >> postgis-users mailing list
> >> postgis-users at postgis.refractions.net
> >> 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 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20090505/8bbe452c/attachment.html>


More information about the postgis-users mailing list