Using MapServer as a C/C++ library

Stephen Woodbridge woodbri at SWOODBRIDGE.COM
Thu Dec 29 09:44:59 EST 2005


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
> 



More information about the mapserver-users mailing list