Chris,
        I don't think that it is in the C API but the info is there because
it's stored in one of the file headers. The function within OGR that returns
this info to a OGREnvelope pointer passed into the function is called:
TABFile::GetExtent it returns the extents of the data currently in the tab
file. 

I haven't used the C api in a very long time so perhapse this has been
wrapped already? If not you can either add it on your own or put in a
request to have it added. 

Since you are using C# does that mean you have Visual Studio? If so then you
could compile it in yourself. Any version of VC++ can compile mitab from
VC++6 on up to VC++2005. Just make sure you compile it as byte code if you
are using one of the .Net versions of Visual Studio.
Thanks,
Andy

-----Original Message-----
From: chris_santer [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 27, 2004 6:16 AM
To: [EMAIL PROTECTED]
Subject: [mitab] mitab c api in C#





I have successfully implemented much of the c api using C#, but I 
cannot figure out where to get the information I need to draw the 
map to the window and allow zoom in/out. I need the bounding box, in 
world coordinates, for the entire layer. Is there a way to get this 
information using the c api? Below is some sample code I am using to 
retreive the X, Y coords for a point based layer:

for(int iPointCounter=0;iPointCounter<iPointCount;iPointCounter++)
{
    Point pt = new Point();                                     
        
    dX = mitab_c_get_vertex_x(iFID, iPartCounter, iPointCounter);
    dY = mitab_c_get_vertex_y(iFID, iPartCounter, iPointCounter);
                                                                
    pt.X = Convert.ToInt32(Convert dX here to screen coords);
    pt.Y = Convert.ToInt32(Convert dY here to screen coords);
                                                        
    int iPenColor = mitab_c_get_pen_color(iFID);
    int iPenWidth = mitab_c_get_pen_width(iFID);
    int iPenPattern = mitab_c_get_pen_pattern(iFID);
    R = iPenColor / 65536 ;
    G =  (iPenColor - R*65536) / 256 ;
    B = iPenColor - R*65536 - G*256 ;
    brushDraw.Color = Color.FromArgb(R, G, B);
    g.FillRectangle(brushDraw, pt.X, pt.Y, iPenWidth, iPenWidth);
}

If I know the bounding box, in world coordiantes, its quite easy to 
do the conversion to screen coordinates, but I can't seem to get 
this info back using the c api. Any help would be greatly 
appreciated, and I can provide more sample code of what I am doing 
if needed.

Thanks in advance,
Chris









 
Yahoo! Groups Links



 






------------------------ Yahoo! Groups Sponsor --------------------~--> 
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/dkFolB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/mitab/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to