I agree with Jacques methodology of resetting a centroid to its
'correct' location.  Alternately, I had a problem where I had to
redefine the position of polygon centroids (so that it didn't fall in
the water regions of another table).  To do this I determined the
desired centroid coordinates and exported the table to mid/mif and
edited the mif file and inserted a 'Center' clause with the calculated
coordinates and finally reimported the file.  This was all done
programmatically.

        Gabriel Bincik, Programmer
        Desktop Mapping Technologies Inc.
        11 Allstate Parkway  Suite 450
        Markham ON
        L3R 9T8
Phone:  (905)477-0770 x222
Fax:    (905)477-6551
Email:  [EMAIL PROTECTED]
Web:    www.desktopmapping.com



-----Original Message-----
From: David M Haycraft [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, April 21, 1999 1:34 AM
To: [EMAIL PROTECTED]
Subject: MI MapBasic question - can one set the centroid of a region
programatically?


Advice sought!

As described in the Mapbasic on-line help, you can create a
run-time-defined region object using the statements:
   Dim fltNodeX( ) as float
   Dim fltNodeY( ) as float
   Dim intNodes as integer
   Dim fltCentroidX as float
   Dim fltCentroidY as float
   Dim objRegion as object
   Create Region Into objRegion 0
   for i=1 to intNodes
    Alter Object objRegion Node Add ( fltNodeX(i), fltNodeX(i) ) 
   next 

This approach works fine, except that the default centroid of the
resultant object is always positioned at the first node on the
perimeter.
   
If you compute centroid coords and try to set them explicitly using
   Create Region Into objRegion 0 Center (fltCentroidX ,fltCentroidY )
then the Center clause appears to be ignored, because the centroid
remains positioned at the first node on the perimeter.

There does not seem to be a variant of the Alter Object statement to fix
up the position of the centroid of a new region object.

How do you set the centroid of a region programatically?
   

David M Haycraft                   Phone/Fax:  61 + 2 + 6231 8104
Information Analysis Assocs  P/L   Mobile:     0412 001 134
ACN 085 516 105                    Email:
[EMAIL PROTECTED] 
1 Cumming Place, Wanniassa         Web:
www.acslink.aone.net.au/actaa/iaa.htm
A.C.T. 2903, Australia             A MapInfo Partner
----------------------------------------------------------------------
To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put
"unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]

Reply via email to