Hi Brian,

I think that the best way to do this would be to create a C or C++ API based on the SWIG mapscript interface. This would allow you to interface at a reasonably stable API that gets updated when appropriate changes to it are required. The underlying code can go through some dramatic changes when internals are restructured, but the SWIG mapscript API is pretty stable and used by a lot of people so it gets tested extensively.

There are a few others that have talked about wanting something like this and I think it would be worth the startup effort if you are interested. Personally, I would like to see a C API made available in this fashion. ;)

-Steve W.

Brian Peschel wrote:
So I am curious about using MapServer inside an existing C++ program.  A
previous query about this suggested I shell out to the OS and call shp2image
to create the image which I could then read in.  Shelling to the OS is not
my prefered way of doing anything (there are limitations in the C system()
call I would prefer to avoid).  So, I would rather use MapServer as a
library call.

Looking at the makefile generated by MapServer, I see that the CGI program
can be compiled as a library (the shp2img program uses a static library
version), so that should work for me.

Looking at the PHP/MapScript documentation
(http://mapserver.gis.umn.edu/docs/reference/phpmapscript-class) and the
code for shp2img, I see how the mapObj is created which creates an imageObj
which writes out to a file.  I could (I suppose) write out to a file and use
GD to read the file back in to I can get access to the pixels for my
display.  I would prefer to skip the write to file/read the file part for speed.

Is there another reference on the classes I am missing?  The online docs
don't seem to give an indication of what the actual classes do, just methods
in the classes.  Is there a better place to look for this?  Is this more of
a question for the DEV list rather than the USER list?

I haven't actually installed MapScript itself.  From the Readme in the
MapServer download, it says it is a module, and does not list C or C++ as a
language it supports.

Thanks in advance for any help...

- Brian

Reply via email to