Hello Erin,

Taking all Bill's warnings into account, iff (if an only if) your regions
are normalised so that the "outer" polygons is first and holes (only)
subsequent, you can fill your holes with:

update YourTable set obj = extractnodes(obj, 1, 1, 1, 1)

This uses a handy feature of extractnodes() which provides a whole polygon
(poly# from 2nd parameter) when start node (3rd param) and end node (4th
param) are both 1. The last parameter is actually a logical stating that the
obj is a region.

Regards,
Warren Vick
Europa Technologies Ltd.
http://www.europa-tech.com

-----Original Message-----
From: B. Thoen [mailto:[EMAIL PROTECTED] 
Sent: 20 June 2004 19:23
To: Erin Rubio
Cc: [EMAIL PROTECTED]
Subject: Re: MI-L filling in open holes within a polygon


On Sun, 20 Jun 2004, Erin Rubio wrote:

> I have a polygon with a few holes in the middle that I'd like to 
> automatically fill in using a MapBasic command.

The first segment in a region is *usually* the outer polygon, and so you
could just remove nodes from the subsequent segments until you get down to
two nodes on each hole and it disappears. This would effectively "fill" the
outer polygon.

However, you have to make sure that the sub-regions you're deleting are
actually inside the outer polygon and not separate outside polygons. You'd
also have to make sure that the first segment really is the outer polygon.  
I don't think you can rely on MapInfo doing anything particularly
intelligent with regard to implied topology using node order.

- Bill Thoen



---------------------------------------------------------------------
List hosting provided by Directions Magazine | www.directionsmag.com | To
unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Message number: 12294




---------------------------------------------------------------------
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Message number: 12296

Reply via email to