I would disagree too; however, I have seen it with my own eyes. It happened
when there was an oddly shaped region and the bounds for the table were
still set at 180x360 for whole-earth coverage.

In this case there was a long diagonal edge, and the centroid indeed was
placed outside the polygon by an almost imperceptible distance. Jacques
"wrote the book" on MapInfo precision, and has explained how there are
actually a finite number of "cells" in which MapInfo can place nodes or
centroids. This is why you want to set a new bounds clause for any maps you
draw for specific areas, so you have better precision.

The table someone sent me (as proof, since I did not believe you could have
a centroid outside its region either) had calculated the 'proper' placement
of the centroid, but when the rounding occurred to put it in the invisible
cell, the rounded value placed the centroid outside the region.

So, there it is. Seemingly impossible, but can happen. Sounds like a bug to
me.

Steve Wallace

-----Original Message-----
From: Jacques Paris [mailto:[EMAIL PROTECTED]]
Sent: Thursday, May 10, 2001 10:12 AM
To: Spencer Simpson; Mapinfo Mailing List
Subject: RE: MI-L MI/MB Geocoding problem


I must disagree with this approach that stems for a false premise, the
notion that in MapInfo a centroid can be outside its polygon. It is
impossible by MI definition. Try to pull a centroid away from its polygon to
find out (map | layer control | display > show centroid  and make layer
editable, + reshape via ctrl R or tool, then grab the centroid and pull it
away; it will come back in its polygon). Even in MapBasic, the center
argument is overridden by MI when the object is inserted in its map, which
means that you cannot force a centroid outside its polygon.

The original question should thus be answered simply: a region with its
centroid outside one of the region's polygons does not exist in MI.

Jacques PARIS

mailto:[EMAIL PROTECTED]

For MapInfo support, visit the Paris PC Consult enr. site  at
http://www.paris-pc-gis.com/

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Spencer Simpson
Sent: May 10, 2001 9:19 AM
To: Mapinfo Mailing List
Subject: Re: MI-L MI/MB Geocoding problem

Doug Pease wrote:

> Is there some way to check (within a MB function) if a polygon centroid is
> outside its polygon?

Yes, You can make a copy of the polygon table, then replace each polygon
with a point
at the polygon's centroid.

1. Use SQL Select to select only the Unique ID column from your polygon
table
(the polygons will be automatically selected).
2.  Use "File -> Save Copy As..." to save this selection to disk.
3.  Open the table you just created (we'll call it "MyCopy").
4. Using "Table->Maintenance->Table Structure",  Add a LOGICAL column to the
original table (call it "CIP" or something like that).
5. Rename the UniqueID column of MyCopy to something that doesn't name a
column of the original table.
5.  Options -> Show MapBasic Window.
6.  In the MapBAsic window, type

Update MyCopy set obj=CreatePoint(CentroidX(obj),CentroidY(obj))

then hit ENTER.

7.  Save the changes to MyCopy.
8.  Using SQL Select, make a geographic join of the original table and
MyCopy  (selecting all columns)  where OriginalTab.obj contains MyCopy.obj.
9.  Make a selection from the results of the query used in Step 8, where the
Unique ID column equals the new name you came up with in step 5.
10.  Use Table -> Update Column on the query produced in step 9.  Update the
column you created in step 4 with 1.   This will set the "CIP" value of all
the parcels that contain their centroids to "TRUE".

It's then a matter of selecting from the original table where the CIP Column
is FALSE to
find the parcels that don't contain their centroids.

I must warn you, however, that you will probably find a *lot* of these
polygons.  Updating an object's centroid in MapBasic is a rather difficult
process that I'd rather not go into
here, but I'm sure someone has written a tool to automatically update
polygon centroids with points guaranteed to be inside the polygons.  Of
course, you can update
centroids manually with later versions of MapInfo.

HTH
Spencer




_______________________________________________________________________
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, send e-mail to [EMAIL PROTECTED] and
put "unsubscribe MapInfo-L" in the message body.



_______________________________________________________________________
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, send e-mail to [EMAIL PROTECTED] and
put "unsubscribe MapInfo-L" in the message body.



_______________________________________________________________________
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, send e-mail to [EMAIL PROTECTED] and
put "unsubscribe MapInfo-L" in the message body.

Reply via email to