Welcome to MapForums!

When you are signed in, this message, the ads in this row, and the red-underlined link ads all go away.

How can I locate the position of a freeform shape ....

This is a discussion on How can I locate the position of a freeform shape .... within the MapPoint Desktop Discussion forums, part of the Map Forums category; How can I locate the position of a freeform shape object so I can keep this information in a database ...

1. Senior Member Black Belt
Join Date
Jul 2002
Posts
5,137
How can I locate the position of a freeform shape object so I can keep this information in a database and use it to reproduce the same shape and position when I need it?

2. Senior Member Black Belt
Join Date
Jul 2002
Posts
5,137
Thanks John, the only problem I have is a freeform has no Location or a center point to start from. I also did not find a way of using the "Points" of the freeform.

Sylvain

3. Use the vertices. Look in Walt's code (referenced above) to see how he accomplishes it.. or just use Walt's solution. - Eric

4. Also, check out Walt's mif/mid exporter: http://www.mp2kmag.com/importersub01.asp . Whether you have MapInfo or not, this can still be useful as it exports text files, you can parse those to get the coordinates. It's compiled for you and linked from a past update: http://www.mp2kmag.com/update/?id=5 Look near the bottom. - Eric

5. Senior Member Black Belt
Join Date
Jul 2002
Posts
5,137
First you need to read/download the code written by Gilles Kohl "A More Compact Method for Obtaining Lat/Long " at

http://www.mp2kmag.com/articles.asp?ArticleID=13

cut/paste that code into a module. Make sure you have a reference to the Microsoft Mappoint 9.0 object Library(North America)

Assuming you have a shape on your map this code will give you a message box with the Lat/Long for the shape. Store them in you database. When you want to recreate the shape use the GetLocation method with your lat/long. Then use the addshape method. You will also need the size you want the shape to be so you might want to store that as well.

Public thelat As Double

Public thelon As Double

Private Sub Command1_Click()

Dim iShape As MapPointCtl.Shape

Set iShape = MappointControl1.ActiveMap.Shapes(1)

Dim themap As MapPoint.Map

Set themap = MappointControl1.ActiveMap

Dim theloc As MapPoint.Location

Set theloc = iShape.Location

CalcPos themap, theloc, thelat, thelon

MsgBox thelat & " , " & thelon

John

john@support-pc.com