[mapserver-dev] A basic question about mapserver functions

Julien-Samuel Lacroix jlacroix at mapgears.com
Thu Jul 23 09:36:18 EDT 2009


Hi,

Like I said, it's two different steps. In the MapScript example, you 
create a mapObj and then you draw it. It's the same thing in mapserv.

loadMap():
http://trac.osgeo.org/mapserver/browser/trunk/mapserver/mapserv.c#L1237

drawMap():
http://trac.osgeo.org/mapserver/browser/trunk/mapserver/mapserv.c#L1414

Best regards,
Julien

Mauricio Herrera wrote:
> So thanks Julien and Paul.  Thanks for help me
> 
> Well I gonna try more specific with my doubt. I answered for each one
> 
>  
> 
>  
> 
> *Julien:*
> 
>  
> 
> Thanks for MapScript examples, but it did not help me. You say  “In 
> short, msLoadMapInternal loads the mapfile in a Map object and then 
> msDrawMap is called”. I looking for this exactly. But I don’t find “the 
> intermediate step”  between LoadMapInternal and msDrawMap. The Mapscript 
> examples show  general function like $map = 
> ms_newMapObj($map_path."europe.map") and $image=$map->draw();, but 
> internally others functions are requiered ..Actually I know:
> 
>  
> 
> 1.-LoadMapInternal()->case LAYER: 
> msGrowMapLayers()->initLayer()->LoadLayer()
> 
> 2.-LoadLayer()->case 
> DATA:getString()->msValidateParameter->msLookupHashTable() ->msFree()
> 
> *3.- ¿?  the intermediate step or function*
> 
> 4- msDrawmap()
> 
>  
> 
> _When or Where  DATA (layer->data) provides it’s string to DrawMap()? _
> 
> 
> *Note: *Assuming that all variables of Map Object, Layer Object,Class 
> Object (CLASS, SYMBOL, EXTENT, SHAPEPATH, NAME, TYPE,DATA, etc) were 
> loaded successfully._ In what function msDrawMap is loaded or is required?_
> 
>  
> 
>  
> 
> *Paul:*
> 
>  
> 
> Thanks it is a good help (drawMap->drawLayer->drawLayerShape). But _I 
> don’t understand even When or Where  DATA (layer->data) provides it’s 
> string to DrawMap() for drawing  DATA of a LAYER? And When or Where  
> drawMap function is loaded o required?_
> 
>  
> 
> 1.- LoadMapInternal()->case LAYER: 
> msGrowMapLayers()->initLayer()->LoadLayer()
> 
> 2.-LoadLayer()->case 
> DATA:getString()->msValidateParameter->msLookupHashTable() ->msFree()
> 
> *3.-¿? the intermediate step or function()*
> 
> *4.- ¿? the intermediate step or function ()*
> 
> 5.- drawMap->drawLayer->drawLayerShape  (Paul Ramsey)
> 
>  
> 
> *Note*: Assuming that all variables of Map Object, Layer Object,Class 
> Object (CLASS, SYMBOL, EXTENT, SHAPEPATH, NAME, TYPE,DATA,etc) were 
> loaded successfully. In what function msDrawMap is loaded or is required 
> or automatically it is activaded when LoadMapInternal is ok?
> 
> 
>  
> 
> Am I ok?
> 
> 
> Thanks
> 
> Mauricio
> 
> 
> 
> 
> 
> 
> 
> 2009/7/21 Paul Ramsey <pramsey at cleverelephant.ca 
> <mailto:pramsey at cleverelephant.ca>>
> 
>     Approximately this:
> 
>     drawMap->drawLayer->drawLayerShape
> 
>     p
> 
>     On Sun, Jul 19, 2009 at 11:50 PM, Mauricio
>     Herrera<georazor at gmail.com <mailto:georazor at gmail.com>> wrote:
>      > Hello
>      >
>      > Really I hope you  can help me with next doubt,I appreciate your
>     help...
>      >
>      > Well, I am drawing  a function map of mapserver. Because I would
>     like to
>      > know all internal structure of mapserver. However
>      > I have a problem with DATA. I don't understand what function
>     links  DATA
>      > value (layer->data) with next functions:
>      >
>      > imageObj *msDrawMap(mapObj *map, int querymap)
>      > int msShapefileOpen(shapefileObj *shpfile, char *mode, char
>     *filename, int
>      > log_failures)
>      >
>      > (LoadLayer) file mapfile.c  <----- What is the link function for
>     DATA value?
>      > --------->(msDrawMap) file mapdraw.c
>      > (LoadLayer) file mapfile.c  <----- What is the link function for
>     DATA value?
>      > ---------> (msShapefileOpen) file mapshape.c
>      >
>      >
>      > For example:
>      >
>      > 1.-loadLayer()-->getString() ---->linkfunction()?------->msDrawMap()
>      >                                                       |
>      >                                                 filename=layer->data;
>      >
>      > 2.-loadLayer()-->getString()
>     ---->linkfunction()?------->msShapefileOpen()
>      >                                                       |
>      >                                                 filename=layer->data;
>      >
>      >
>      > I know that this  imageObj *msDrawMap(mapObj *map, int querymap)
>     function is
>      > used for rendering the map file. Therefore this function
>      > must know where the data are located ("/usr/local/geo/street") 
>     and DATA
>      > provides this information with (layer-> data) ... but where does
>     it? = S I
>      > can not find the function..
>      >
>      >
>      > And I  know too that:
>      >
>      > loadLayer() this function contain  a (case DATA:)  and  this call the
>      > functions  getString(),msValidateParameter(),msLookupHashTable() and
>      > msFree()..But In what moment DATA sends or provides its value to the
>      > functions msDrawMap() o msShapefileOpen? where is the link function?
>      >
>      >
>      > I hope you understand me
>      >
>      > Thanks
>      >
>      > Mauricio
>      >
>      > _______________________________________________
>      > mapserver-dev mailing list
>      > mapserver-dev at lists.osgeo.org <mailto:mapserver-dev at lists.osgeo.org>
>      > http://lists.osgeo.org/mailman/listinfo/mapserver-dev
>      >
>      >
> 
> 

-- 
Julien-Samuel Lacroix
Mapgears
http://www.mapgears.com/


More information about the mapserver-dev mailing list