Introduction:
MapScript is a scripting interface for the MapServer. It allows users to more
easily build custom applications by hiding much of the complexity of the C API
behind a simple object-oriented scripting interface. MapScript currently exists
as a module in many languages, see for the main documentation.

The organization of MapScript is very close to that of a mapfile. It does NOT
give you the functionality of the MapServer CGI program, rather it gives you
the necessary pieces to build your own custom versions for use on the web or as
a standalone program.

Usage:
#!/usr/bin/perl -w
#use strict; # (may require a fix to mapscript.pm)
use mapscript;
use DBI;
use XBase;

Constants:
Many mapfile parameters take constant values.
The following constants are available in MapScript:

logical control/boolean values MS_VERSION - character (4.0.0)
MS_TRUE/MS_ON/MS_YES - integer (1)
MS_FALSE/MS_OFF/MS_NO - integer (0)
MS_NOOVERRIDE - integer
logical control/status values MS_DEFAULT (layer) - integer (2)
MS_EMBED (legend & scalebar) - integer (3)
MS_DELETE (layer) - integer (4)
map units MS_INCHES - integer
MS_FEET - integer
MS_MILES - integer
MS_METERS - integer
MS_KILOMETERS - integer
MS_DD - integer
MS_PIXELS - integer
layer types MS_LAYER_POINT - integer
MS_LAYER_LINE - integer
MS_LAYER_POLYGON - integer
MS_LAYER_RASTER - integer
MS_LAYER_ANNOTATION - integer
MS_LAYER_QUERY - integer
MS_LAYER_CIRCLE - integer
MS_LAYER_GRATICULE - integer
font types MS_TRUETYPE - integer
MS_BITMAP - integer
label positions MS_UL - integer
MS_LR - integer
MS_UR - integer
MS_LL - integer
MS_CR - integer
MS_CL - integer
MS_UC - integer
MS_LC - integer
MS_CC - integer
MS_AUTO - integer
label size (bitmap only) MS_TINY - integer
MS_SMALL - integer
MS_MEDIUM - integer
MS_LARGE - integer
MS_GIANT - integer
shape types MS_SHAPE_POINT - integer
MS_SHAPE_LINE - integer
MS_SHAPE_POLYGON - integer
MS_SHAPE_NULL - integer
measured shape types MS_SHP_POINTM - integer
MS_SHP_ARCM - integer
MS_SHP_POLYGONM - integer
MS_SHP_MULTIPOINTM - integer
shapefile types MS_SHAPEFILE_POINT (1)
MS_SHAPEFILE_ARC (3)
MS_SHAPEFILE_POLYGON (5)
MS_SHAPEFILE_MULTIPOINT (8)
dbf field types FTString - integer
FTInteger - integer
FTDouble - integer
FTInvalid - integer
query types MS_SINGLE - integer (0)
MS_MULTIPLE - integer (1)
file types MS_FILE_MAP - integer
MS_FILE_SYMBOL - integer
querymap styles MS_NORMAL - integer
MS_HILITE - integer
MS_SELECTED - integer
connection type MS_INLINE - integer
MS_SHAPEFILE - integer
MS_TILED_SHAPEFILE - integer
MS_SDE - integer
MS_OGR - integer
MS_POSTGIS - integer
MS_WMS - integer
MS_ORACLESPATIAL - integer
MS_WFS - integer
MS_GRATICULE - integer
MS_MYGIS - integer
db connection type MS_DB_XBASE - integer
MS_DB_MYSQL - integer
MS_DB_ORACLE - integer
MS_DB_POSTGRES - integer
join type MS_JOIN_ONE_TO_ONE - integer
MS_JOIN_ONE_TO_MANY - integer
line join type (for rendering) MS_CJC_NONE - integer
MS_CJC_BEVEL - integer
MS_CJC_BUTT - integer
MS_CJC_MITER - integer
MS_CJC_ROUND - integer
MS_CJC_SQUARE - integer
MS_CJC_TRIANGLE - integer
image type MS_GIF - integer (0)
MS_PNG - integer (1)
MS_JPEG - integer (2)
MS_WBMP - integer (3)
MS_GML - integer (4)
image modes MS_IMAGEMODE_PC256 - integer
MS_IMAGEMODE_RGB - integer
MS_IMAGEMODE_RGBA - integer
MS_IMAGEMODE_INT16 - integer
MS_IMAGEMODE_FLOAT32 - integer
symbol types MS_SYMBOL_SIMPLE - integer
MS_SYMBOL_VECTOR - integer
MS_SYMBOL_ELLIPSE - integer
MMS_SYMBOL_PIXMAP - integer
MS_SYMBOL_TRUETYPE - integer
MS_SYMBOL_CARTOLINE - integer
return codes MS_SUCCESS - integer
MS_FAILURE - integer
MS_DONE - integer
limiters MS_MAXSYMBOLS - long
MS_MAXVECTORPOINTS - long
MS_MAXSTYLELENGTH - long
MS_IMAGECACHESIZE - long
error codes MS_NOERR - long
MS_IOERR - long
MS_MEMERR - long
MS_TYPEERR - long
MS_SYMERR - long
MS_REGEXERR - long
MS_TTFERR - long
MS_DBFERR - long
MS_GDERR - long
MS_IDENTERR - long
MS_EOFERR - long
MS_PROJERR - long
MS_MISCERR - long
MS_CGIERR - long
MS_WEBERR - long
MS_IMGERR - long
MS_HASHERR - long
MS_JOINERR - long
MS_NOTFOUND - long
MS_SHPERR - long
MS_PARSEERR - long
MS_SDEERR - long
MS_OGRERR - long
MS_QUERYERR - long
MS_WMSERR - long
MS_WMSCONNERR - long
MS_ORACLESPATIALERR - long
MS_WFSERR - long
MS_WFSCONNERR - long
MS_MAPCONTEXTERR - long
MS_HTTPERR - long
MS_NUMERRORCODES - long
MESSAGELENGTH - long
ROUTINELENGTH - long


Classes/Objects:
Access to the mapserver API is provided largely through a series of classes.
These classes allow the programmer to:

- manipulate virtually all aspects of a mapfile
- draw entire maps, layers or individual shapes
- perform spatial queries using points, areas or other features
- read/write shapefiles
- perform attribute queries

The main MapScript classes are given in the table below.
Each class is described in detail later in this document.

classObj holds all class parameters
exists within a layerObj
colorObj
errorObj
fontSetObj
graticuleObj
imageObj
labelCacheMemberObj holds a single element from the label cache
labelCacheObj
labelObj
layerObj holds all layer parameters
exists within a mapObj
legendObj
lineObj made up of pointObjs
may or may not be a closed ring
mapObj holds all mapfile parameters
markerCacheMemberObj
msTiledSHPLayerInfo
outputFormatObj
pointObj simple class to hold a 2-D point
projectionObj
queryMapObj
rectObj class used to represent a 2-D rectangle
defined using minimum and maximum x and y coordinates
referenceMapObj
resultCacheMemberObj
resultCacheObj
scalebarObj
shapefileObj class used to access spatial information (i.e. features) stored in an ESRI shapefile
shapeObj made up of lineObjs
styleObj
symbolObj
symbolSetObj
vectorObj
webObj


classObj:

Constructors:
new mapscript::classObj(layerObj) $labelcachemember->{class} $layer->getClass(0)
Provides access to all class parameters (color, symbol, label, & etc...).
Normally you obtain a classObj from an existing class within a layer, however, you can create a new class.

Members: See the mapfile documentation for a list of parameters that can be changed.
  • debug - integer - rw.
  • keyimage - character - rw.
  • label - labelObj - rw.
  • layer - layerObj - rw.
  • maxscale - double - rw.
  • minscale - double - rw.
  • name - character - rw - should be unique within a layer.
  • numstyles - integer - rw.
  • status - integer - rw.
  • styles - styleObj - rw - First mapfile define style or last mapscript defined style.
  • template - character - rw.
  • title - character - - used for legend labelling.
  • type - integer - rw.

  • Methods: Method Description Returns Notes
    createLegendIcon(mapObj, layerObj, width, height); Creates a new canvas image for adding legend icons to. imageObj
    drawLegendIcon(mapObj, layerObj, width, height, imageObj, dstX, dstY) Draws the icon on an existing legend canvas image. integer imageObj is the existing canvas image.
    getExpressionString() character
    setExpression(character string) integer
    getMetaData(character name) character
    setMetaData(character name,character value) integer MS_FAILURE,MS_SUCCESS
    setText(layerObj,character string) integer


    colorObj:

    Constructors:
    new mapscript::colorObj() $label->{backgroundcolor} $label->{backgroundshadowcolor} $label->{color}
    $label->{shadowcolor} $label->{offsite} $legend->{imagecolor} $legend->{outlinecolor}
    $map->{imagecolor} $referencemap->{color} $referencemap->{outlinecolor} $scalebar->{backgroundcolor}
    $scalebar->{color} $scalebar->{imagecolor} $scalebar->{outlinecolor} $style->{backgroundcolor}
    $style->{color} $style->{outlinecolor}

    Members:
  • blue - integer - rw.
  • green - integer - rw.
  • pen - integer - rw.
  • red - integer - rw.

  • Methods: Method Description Returns Notes
    none


    errorObj:

    Constructors:
    new mapscript::errorObj() errorObj->next() mapscript::msGetErrorObj()

    Members:
  • code - integer - rw.
  • message - character - rw.
  • routine - character - rw.

  • Methods: Method Description Returns Notes
    next() errorObj


    fontSetObj:

    Constructors:
    new mapscript::fontSetObj() $map->{fontset}

    Members:
  • filename - character - rw.
  • numfonts - integer - rw.

  • Methods: Method Description Returns Notes
    none


    graticuleObj:

    Constructors:
    new mapscript::graticuleObj()

    Members:
  • blabelaxes - integer - rw.
  • bvertical - integer - rw.
  • dendlatitude - double - rw.
  • dendlongitude - double - rw.
  • dincrementlatitude - double - rw.
  • dincrementlongitude - double - rw.
  • dstartlatitude - double - rw.
  • dstartlongitude - double - rw.
  • dwhichlatitude - double - rw.
  • dwhichlongitude - double - rw.
  • extent - rectObj - rw.
  • ilabelstate - integer - rw.
  • ilabeltype - integer - rw.
  • labelformat - character - rw.
  • maxarcs - double - rw.
  • maxincrement - double - rw.
  • maxsubdivides - double - rw.
  • minarcs - double - rw.
  • minincrement - double - rw.
  • minsubdivides - double - rw.
  • pboundinglines - lineObj - rw.
  • pboundingpoints - pointObj - rw.

  • Methods: Method Description Returns Notes
    none


    imageObj:

    Constructors:
    new mapscript::imageObj(width, height) $class->createLegendIcon($map,$layer,10,10) $map->draw() $map->drawLegend()
    $map->drawQuery() $map->drawReferenceMap() $map->drawScalebar() $map->prepareImage()

    Members:
  • format - outputFormatObj - rw.
  • height - integer - rw.
  • imagepath - character - rw.
  • imageurl - character - rw.
  • renderer - integer - rw.
  • size - integer - rw.
  • width - integer - rw.

  • Methods: Method Description Returns Notes
    free() void
    save(character filename) void


    labelCacheMemberObj:

    Constructors:
    new mapscript::labelCacheMemberObj() $labelcache->{labels} $map->nextLabel()


    Members:
  • class - classObj - rw - the entire class is stored for variences between labels.
  • classindex - integer - rw.
  • featuresize - double - rw.
  • label - labelObj - rw.
  • layeridx - integer - rw - indexes.
  • numstyles - integer - rw.
  • point - pointObj - rw - label point.
  • poly - shapeObj - rw - label bounding box.
  • shapeindex - integer - rw.
  • status - integer - rw - has the label been drawn or not.
  • string - character - rw.
  • styles - stylObj - rw.
  • tileindex - integer - rw.

  • Methods: Method Description Returns Notes
    none


    labelCacheObj:

    Constructor:
    new mapscript::labelCacheobj() $map->{labelcache}

    Members:
  • cachesize - integer - rw.
  • labels - labelCacheMemberObj - rw.
  • markers - markerCacheMemberObj - rw.
  • markercachesize - integer - rw.
  • numlabels - integer - rw.
  • nummarkers - integer - rw.

  • Methods: Method Description Returns Notes
    freeCache() void


    labelObj:

    Constructors:
    new mapscript::labelObj() $class->{label} $labelcachemember->{label} $legend->{label} $scalebar->{label}

    Members:
  • angle - double - rw.
  • antialias - integer - rw.
  • autoangle - integer - rw - true or false.
  • autominfeaturesize - integer - rw - true or false.
  • backgroundcolor - colorObj - rw.
  • backgroundshadowcolor - colorObj - rw.
  • backgroundshadowsizex - integer - rw.
  • backgroundshadowsizey - integer - rw.
  • buffer - integer - rw - space to reserve around a label.
  • color - colorObj - rw.
  • font - character - rw.
  • force - integer - rw - labels Must be drawn.
  • mindistance - integer - rw.
  • minfeaturesize - integer - rw - minimum feature size (in pixels) to label.
  • maxsize - integer - rw.
  • minsize - integer - rw.
  • offsetx - integer - rw.
  • offsety - integer - rw.
  • outlinecolor - colorObj - rw.
  • partials - integer - rw - can labels run off an image.
  • position - integer - rw.
  • shadowcolor - colorObj - rw.
  • shadowsizex - integer - rw.
  • shadowsizey - integer - rw.
  • size - integer - rw.
  • sizescaled - integer - rw.
  • type - MS_FONT_TYPE - rw.
  • wrap - character - rw.

  • Methods: Method Description Returns Notes
    none


    layerObj:

    Constructor:
    new mapscript::layerObj(mapObj) $class->{layer} $layer->{sameconnection} $map->{layers}
    $map->getLayer(0) $map->getLayerByName("mylayer")
    Normally you obtain layerObj from an existing layer within a map, however you can create a new layer.

    Members:
  • annotate - integer - rw - boolean flag for annotation.
  • classitem - character - rw - .DBF item to be used for symbol lookup.
  • classitemindex - integer - rw.
  • connection - character - rw.
  • connectiontype - MS_CONNECTION_TYPE - rw.
  • data - character - rw - filename, can be relative or full path.
  • debug - integer - rw.
  • dump - integer - rw.
  • filteritem - character - rw.
  • filteritemindex - integer - rw.
  • footer - character - rw - only used with multi result queries.
  • group - character - rw - should not be unique.
  • header - character - rw.
  • index - integer - rw.
  • items - character - rw.
  • joins - joinObj - rw.
  • labelangleitem - character - rw.
  • labelangleitemindex - integer - rw.
  • labelcache - integer - rw.
  • labelitem - character - rw.
  • labelitemindex - integer - rw.
  • labelmaxscale - double - rw.
  • labelminscale - double - rw.
  • labelrequires - character - rw.
  • labelsizeitem - character - rw.
  • labelsizeitemindex - integer - rw.
  • map - mapObj - rw.
  • maxfeatures - integer - rw.
  • maxscale - double - rw.
  • minscale - double - rw.
  • name - character - rw - should be unique.
  • numclasses - integer - ro - number of classes in the layer.
  • numitems - integer - rw.
  • numjoins - integer - rw.
  • offsite - colorObj - rw - color index to treat as transparent for raster layers.
  • postlabelcache - integer - rw - on or off.
  • project - integer - rw.
  • requires - character - rw - context expressions.
  • resultcache - resultCacheObj - rw - holds the results of a query against this layer.
  • sameconnection - layerObj - rw.
  • scalefactor - double - rw.
  • sizeunits - integer - rw - applies to all classes.
  • status - integer - rw - on or off.
  • styleitem - character - rw - item to be used for style lookup - can also be 'AUTO'.
  • styleitemindex - integer - rw.
  • symbolscale - double - rw - scale at which symbols are default size.
  • template - character - rw - global template, used across all classes.
  • tileindex - character - rw - layer index file for tiling support.
  • tileitem - character - rw.
  • tileitemindex - integer - rw.
  • tolerance - double - rw - search buffer for point and line queries (in toleranceunits).
  • toleranceunits - integer - rw.
  • transform - integer - rw - does this layer have to be transformed to file coordinates.
  • transparency - integer - rw - transparency value 0-100.
  • type - MS_LAYER_TYPE - rw.
  • units - integer - rw - units of the projection.

  • Methods: Method Description Returns Notes
    addFeature(shapeObj shape) integer, -1 on failure
    close() void
    demote() integer
    draw(mapObj, imageObj) Draws a single layer and adds labels to the cache if required. integer
    drawQuery(mapObj, imageObj) integer
    getClass(integer index) Retrieves a classObj given an index value. classObj Class index values start at 0. Total number of classes defined in a layer is $layer->{numclasses}.
    getFilterString() Returns the current filter string. character
    getItem(integer) Returns an existing item name. character
    getMetaData(character name) character
    getProjection() Returns current projection string. character
    getResult(integer member) Retrieves the nth member of the result cache created by the previous query, ie. queryByPoint. resultCacheMemberObj
    getShape(shapeObj, integer tileindex, integer shapeindex) integer See open() & close().
    open() integer
    promote() integer
    queryByAttributes(mapObj, character query item, character query string, integer mode) integer
    queryByFeatures(mapObj, integer query layer index) Queries a single layer using another set of results. integer
    queryByPoint(mapObj,pointObj,integer mode,double buffer) Queries layer(s) using a point. integer "mode" is MS_SINGLE or MS_MULTIPLE. Defaults to tolerances set in the mapfile but can use a constant buffer instead.
    queryByRect(mapObj,rectObj) Queries a single layer using a rectangle. integer
    queryByShape(mapObj,shapeObj) integer
    removeClass(integer class index) integer
    setFilter(character string filter) integer
    setProjection(character string parameters) Sets the projection and coordinate system for the layer. integer Parameters are given as a single string of comma delimited PROJ.4 parameters, ie. "proj=utm,ellps=GRS80,zone=15,north,no_defs".
    setMetaData(character name,character value) integer - MS_FAILURE,MS_SUCCESS
    setWKTProjection(character string) integer
    getWMSFeatureInfoURL(mapObj,integer click_x,integer click_y,integer feature_count,character info_format) character


    legendObj:

    Constructor:
    new mapscript::legendObj() $graticule->{pboundinglines} $map->{legend} $shape->{line}
    $shape->get(0)

    Members:
  • height - integer - rw.
  • imagecolor - colorObj - rw.
  • interlace - integer - rw.
  • keysizex - integer - rw.
  • keysizey - integer - rw.
  • keyspacingx - integer - rw.
  • keyspacingy - integer - rw.
  • label - labelObj - rw.
  • map - mapObj - rw.
  • outlinecolor - colorObj - rw - color of outline of box.
  • position - integer - rw - for embeded legends.
  • postlabelcache - integer - rw.
  • status - integer - rw - ON, OFF or EMBED.
  • template - character - rw.
  • transparent - integer - rw.
  • width - integer - rw.

  • Methods: Method Description Returns Notes
    none


    lineObj:

    Constructors:
    new mapscript::lineObj() $shape->{line} $shape->get(0)

    Members:
  • numpoints - integer - rw - number of points in this line.
  • point - pointObj - rw.

  • Methods: Method Description Returns Notes
    add(pointObj) Adds a point to the end of the line. integer
    get(int point#) pointObj
    project(projectionObj in,projectionObj out) integer
    set(int point#,pointObj) Changes the coordinates of an existing point MS_SUCCESS on success


    mapObj:

    Constructor:
    new mapscript::mapObj(mapfile name) $layer->{map} $legend->{map} $map->{clone}
    $referencemap->{map} $web->{map}
    If the filename is undefined an empty mapObj is created and initialized.

    Members:
    Parameters that consist of a list (eg. size) can be accessed using individual list members- see below.
    All parameter names are to be given in lowercase.
  • cellsize - double - rw - in map units.
  • datapattern - character - rw.
  • debug - integer - rw.
  • extent - rectObj - rw.
  • fontset - fontSetObj - rw.
  • height - integer - rw.
  • imagecolor - colorObj - rw - holds the initial image color value.
  • imagequality - integer - rw.
  • imagetype - character - rw.
  • interlace - integer - rw.
  • labelcache - labelCacheObj - rw.
  • layerorder - integer - rw.
  • layers - layerObj - rw.
  • legend - legendObj - rw.
  • mappath - character - rw.
  • name - character - rw - small identifier for naming etc.
  • numlayers - integer - rw - number of layers in the map.
  • numoutputformats - integer - rw.
  • outputformat - outputFormatObj - rw.
  • outputformatlist - outputFormatObj - rw.
  • palette - paletteObj - rw - paletteObj is used to hold colors while a mapfile is read.
  • querymap - queryMapObj - rw.
  • reference - referenceMapObj - rw.
  • resolution - integer - rw.
  • scale - double - rw - scale of the output image.
  • scalebar - scalebarObj - rw.
  • shapepath - character - rw - where are the shape files are located.
  • status - integer - rw - map creation on or off.
  • symbolset - symbolSetObj - rw.
  • transparent - integer - rw.
  • templatepattern - character - rw.
  • units - MS_UNITS - rw - units of the projection.
  • web - webObj - rw.
  • width - integer - rw.

  • Methods: Method Description Returns Notes
    clone() mapObj
    draw() Renders a map. imageObj
    drawLabelCache(imageObj) Renders the labels for a map. integer Done as part of the draw() method but may need called when using other object draw methods.
    drawLegend() Renders a legend. imageObj
    drawQuery() Renders a query map. imageObj
    drawReferenceMap() Renders a reference map. imageObj
    drawScalebar Renders a scalebar. imageObj
    embedLegend(imageObj) Embeds a legend in a map. integer Adds legend to label cache. Invoke drawLabelCache(imageObj) to render (unless postlabelcache is set).
    embedScalebar(imageObj) Embeds a scalebar in a map. integer Adds scalebar to label cache. Invoke drawLabelCache(imageObj) to render (unless postlabelcache is set).
    getLayer(integer index) Retrieves a layer by index. layerObj Layer indexes start with 0. Total number of layers in a mapfile is $map->{numlayers};.
    getLayerByName(character name) Retrieves a layer by name. layerObj If multiple layers exist with the same name the first occurence is returned.
    getLayersdrawingOrder() integer
    getMetaData(character name) character
    mapObj_getNumSymbols() integer
    getProjection() character
    getNumSymbols() integer
    getSymbolByName(character name) Retrieves the symbol index by name. integer
    loadMapContext(character filename) integer
    moveLayerdown(layerindex) integer
    moveLayerup(layerindex) integer
    nextLabel() Allows you to step through the label cache. labelCacheMemberObj One reason to do this would be to produce an imagemap based on annotation or post process a map by avoiding text.
    prepareImage() Initializes an image for drawing a map. imageObj Must be called prior to calling the draw methods for other objects (not draw()).
    prepareQuery() void
    processLegendTemplate(names,values,numentries) character
    processQueryTemplate(names,values,numentries) character
    processTemplate(bGenerateImages,names,values,numentries) character
    queryByFeatures(integer previously queried layer index) Queries a group of layers using another set of results. integer
    queryByPoint(pointObj query point,int mode,double buffer) Queries a group of layers using a point. integer "mode" is MS_SINGLE or MS_MULTIPLE. Defaults to tolerances set in the mapfile but can use a constant buffer instead.
    queryByRect(rectObj query rect) Queries a group of layers using a rectangle. integer
    queryByShape(shapeObj query shape) integer
    removeLayer(integer layer index) integer
    save(char filename) Writes the contents of a mapfile to disk. integer
    saveQuery(char filename) integer
    saveMapContext(char filename) integer
    setFontSet(char filename) integer
    saveQueryAsGML(char filename) integer
    setImageType(character imagetype) integer
    setLayersdrawingOrder(panIndexes) integer
    setMetaData(char name,char value) integer
    setOutputFormat(outputFormatObj) integer
    setProjection(string parameters) Sets the projection and coordinate system for the map. integer Parameters are given as a single string of comma delimited PROJ.4 parameters, ie. "proj=utm,ellps=GRS80,zone=15,north,no_defs".
    setSymbolSet(szFileName) integer
    setWKTProjection(char string) integer
    zoomRectangle(integer zoomfactor, rectObj zoomrect, integer width, integer height, rectObj mapextent, rectObj maxentent) integer
    zoomScale(integer zoomfactor, double scale, pointObj zoompoint, integer width, integer height, rectObj mapextent, rectObj maxentent) integer
    zoomPoint(integer zoomfactor, pointObj zoompoint, integer width, integer height, rectObj mapextent, rectObj maxentent) integer


    markerCacheMemberObj:

    Constructor:
    new mapscript::markerCacheMemberObj() $labelcache->{markers}

    Members:
  • id - integer - rw.
  • poly - shapeObj - rw - marker bounding box (POINT layers only).

  • Methods: Method Description Returns Notes
    none


    msTiledSHPLayerInfo:

    Constructors:
    new mapscript::msTiledSHPLayerInfo()

    Members:
  • shpfile - shapefileObj - rw.
  • tileshpfile - shapefileObj - rw.

  • Methods: Method Description Returns Notes
    none


    outputFormatObj:

    Constructors:
    new mapscript::outputFormatObj(character driver) $image->{format} $map->{outputformat} $map->{outputformatlist}

    Members:
  • driver - character - rw.
  • extension - character - rw.
  • formatoptions - character - rw.
  • imagemode - integer - rw.
  • inmapfile - integer - rw.
  • mimetype - character - rw.
  • name - character - rw.
  • numformatoptions - integer - rw.
  • refcount - integer - rw.
  • rendered - integer - rw.
  • transparent - integer - rw.

  • Methods: Method Description Returns Notes
    setExtension(extension) void
    setMimetype(mimetype) void
    setOption(key, value) void value is character, ie. ON, not integer, ie. MS_ON .


    pointObj:

    Constructors:
    new mapscript::pointObj() $graticule->{pboundingpoints} $labelcachemember->{point} $line->{point}
    $line->get(0) $symbol->{points}

    Members:
  • m - double - rw.
  • x - double - rw - x coordinate.
  • y - double - rw - y coordinate.

  • Methods: Method Description Returns Notes
    distanceToPoint(pointObj) double
    distanceToSegment(pointObj a,pointObj b) double
    distanceToShape(shapeObj) double
    draw(mapObj,layerObj,imageObj,integer classindex,character text) Draws an individual point using layerObj. integer The class_index is used to classify the point based on the classes defined for layerObj.
    The text string is used to annotate the point.
    project(projectionObj in,projectionObj out) integer


    projectionObj:

    Constructor:
    new mapscript::projectionObj(string) $map->{querymap}

    Members:
  • args - character - rw - variable number of projection args.
  • numargs - integer - rw - actual number of projection args.
  • proj - void - rw.

  • Methods: Method Description Returns Notes
    none


    queryMapObj:

    Constructor:
    new mapscript::queryMapObj() $map->{querymap}

    Members:
  • color - colorObj - rw.
  • height - integer - rw.
  • status - integer - rw.
  • style - integer - rw - HILITE, SELECTED or NORMAL.
  • width - integer - rw.

  • Methods: Method Description Returns Notes
    none


    rectObj:

    Constructors:
    new mapscript::rectObj() $graticule->{extent} $map->{extent} $referencemap->{extent}
    $resultcache->{bounds} $shapefile->{bounds} $shapefile->{statusbounds} $shape->{bounds}
    $web->{extent}

    Members:
  • minx - double - rw - left.
  • miny - double - rw - lower.
  • maxx - double - rw - right.
  • maxy - double - rw - upper.

  • Methods: Method Description Returns Notes
    draw(mapObj,layerObj,imageObj,integer classindex,character text) Draws an individual rectangle using layerObj. MS_SUCCESS on success The class_index is used to classify the feature based on the classes defined for layerObj.
    The text string is used to annotate the shape.
    fit(integer width,integer height) Adjusts a rectangle to fit a size. double
    project(projectionObj in,projectionObj out) Projects the rectangle. integer


    referenceMapObj:

    Constructor:
    new mapscript::referenceMapObj() $map->{reference}

    Members:
  • color - colorObj - rw.
  • extent - rectObj - rw.
  • height - integer - rw.
  • image - character - rw.
  • map - mapObj - rw.
  • maxboxsize - integer - rw.
  • marker - integer - rw.
  • markername - character - rw.
  • markersize - integer - rw.
  • minboxsize - integer - rw.
  • outlinecolor - colorObj - rw.
  • status - integer - rw.
  • width - integer - rw.

  • Methods: Method Description Returns Notes
    none


    resultCacheMemberObj:

    Constructor:
    new mapscript::resultCacheMemberObj() $layer->getResult(0)

    Members:
  • classindex - character - rw.
  • shapeindex - integer - rw.
  • tileindex - integer - rw.

  • Methods: Method Description Returns Notes
    None


    resultCacheObj:

    Constructor:
    new mapscript::resultCacheObj() $layer->{resultcache}

    Members:
  • bounds - rectObj - rw.
  • numresults - integer - rw - total number of matching records.

  • Methods: Method Description Returns Notes
    None


    scalebarObj:

    Constructor:
    new mapscript::scalebarObj() $map->{scalebar}

    Members:
  • backgroundcolor - colorObj - rw.
  • color - colorObj - rw.
  • height - integer - rw.
  • imagecolor - colorObj - rw.
  • interlace - integer - rw.
  • intervals - integer - rw.
  • label - labelObj - rw.
  • outlinecolor - colorObj - rw.
  • position - integer - rw - for embeded scalebars.
  • postlabelcache - integer - rw.
  • status - integer - rw - ON, OFF or EMBED.
  • style - integer - rw.
  • transparent - integer - rw.
  • units - integer - rw.
  • width - integer - rw.

  • Methods: Method Description Returns Notes
    none


    shapefileObj:

    Constructor:
    new mapscript::shapefileObj(character filename,integer type) $mstiledshplayerinfo->{shpfile} $mstiledshplayerinfo->{tileshpfile}
    No extension is necessary.
    For existing files type should be -1.
    To create an empty file type can be MS_SHAPEFILE_POINT, MS_SHAPEFILE_ARC, MS_SHAPEFILE_POLYGON, or MS_SHAPEFILE_MULTIPOINT.
    To Close a shapefile you've opened you need to undefine the reference, ie. "undef $shapefile;" or "$shapefile = '';".

    Members:
  • bounds - rectObj - rw - The shapefiles bounding box.
  • indexes - integer - rw.
  • lastshape - integer - rw.
  • numindexes - integer - rw.
  • numshapes - integer - rw - number of shapes in the shapefile.
  • source - character - rw - full path to shapefile.
  • status - character - rw.
  • statusbounds - rectObj - rw - holds extent associated with the status vector.
  • type - integer - rw - type of shapefile.

  • Methods: Method Description Returns Notes
    add(shapeObj) Appends shapeObj to an open shapefile. integer
    addPoint(pointObj) Adds pointObj to an open shapefile. integer
    get(integer index,shapeObj) Retrieves a shape by index into shapeObj. integer, -1 if index is < 0 or >= number of shapes
    getExtent(integer index,rectObj) Retrieves a shape bounding box by index into rectObj. void
    getPoint(integer index,pointObj) Retrieves a point by index into pointObj. integer
    getTransformed(mapObj,integer index,shapeObj) integer, -1 if index is < 0 or >= number of shapes


    shapeObj:

    Constructor:
    new mapscript::shapeObj(integer type) $labelcachemember->{poly} $markercachemember->{poly}

    Members:
  • bounds - rectObj - rw - the shapes bounding box.
  • classindex - integer - rw.
  • index - integer - rw.
  • line - lineObj - rw.
  • numlines - integer - rw - number of lines in this shape.
  • numvalues - integer - rw.
  • text - character - rw.
  • tileindex - integer - rw.
  • type - integer - rw - generic type (MS_SHAPE_POINT, MS_SHAPE_LINE, MS_SHAPE_POLYGON) of this shape.
  • values - character - rw.

  • Methods: Method Description Returns Notes
    add(lineObj) Adds a line to the shape. integer
    contains(pointObj) integer
    copy(shapeObj destination) integer
    distanceToPoint(pointObj) double
    distanceToShape(shapeObj) double
    draw(mapObj,layerObj,imageObj) Draws an individual shape using layerObj. integer
    get(integer index) lineObj
    getValue(integer index) Returns an existing value. character
    intersects(shapeObj) integer
    project(projectionObj in,projectionObj out) integer
    setBounds() void NOTE: Do this BEFORE $rect = $shape->{bounds} to calculate bounds first.


    styleObj:

    Constructor:
    new mapscript::styleObj() $class->{styles}

    Members:
  • antialias - integer - rw.
  • backgroundcolor - colorObj - rw.
  • color - colorObj - rw.
  • maxsize - integer - rw.
  • minsize - integer - rw.
  • offsetx - integer - rw.
  • offsety - integer - rw.
  • outlinecolor - colorObj - rw.
  • size - integer - rw.
  • sizescaled - integer - rw.
  • symbol - integer - rw.
  • symbolname - character - rw.

  • Methods: Method Description Returns Notes
    none


    symbolObj:

    Constructors:
    new mapscript::symbolObj() $symbolset->{symbol} $symbolset->getSymbol(0) $symbolset->getSymbolByName("mysymbol")

    Members:
  • antialias - integer - rw.
  • character - character - rw.
  • filled - integer - rw.
  • font - character - rw.
  • gap - integer - rw.
  • imagepath - character - rw.
  • linecap - integer - rw.
  • linejoin - integer - rw.
  • linejoinmaxsize - double - rw.
  • name - character - rw.
  • numpoints - integer - rw.
  • points - pointObj - rw.
  • position - integer - rw.
  • sizex - double - rw.
  • sizey - double - rw.
  • style - integer - rw.
  • stylelength - integer - rw.
  • transparent - integer - rw.
  • transparentcolor - integer - rw.
  • type - integer - rw.

  • Methods: Method Description Returns Notes
    none


    symbolSetObj:

    Constructors:
    new mapscript::symbolSetObj() $map->{symbolset}

    Members:
  • filename - character - rw.
  • imagecachesize - integer - rw.
  • numsymbols - integer - rw.
  • symbol - symbolObj - rw.

  • Methods: Method Description Returns Notes
    getSymbol(integer index) symbolObj
    getSymbolByName(character name) symbolObj


    vectorObj:

    Constructor:
    new mapscript::vectorObj();

    Members:
  • x - double - rw.
  • y - double - rw.

  • Methods: Method Description Returns Notes
    none


    webObj:

    Constructor:
    new mapscript::webObj() $map->{web}

    Members:
  • empty - character - rw.
  • error - character - rw - error handling.
  • extent - rectObj - rw - clipping extent.
  • footer - character - rw.
  • header - character - rw.
  • imagepath - character - rw.
  • imageurl - character - rw.
  • log - character - rw.
  • map - mapObj - rw.
  • maxscale - double - rw.
  • maxtemplate - character - rw.
  • minscale - double - rw.
  • mintemplate - character - rw.
  • template - character - rw.

  • Methods: Method Description Returns Notes
    none


    Miscellaneous Commands:
    The MapServer distribution supplies the following command of interest.
    shp2pdf -m [mapfile] -o [pdf] -l [layers] Saves a mapfile as a pdf.

    Example:
          #
          # Save the current map.
          $map->save("tobepdf.map");
          #
          # Convert the map to pdf.
          @topdferror = system("shp2pdf -m tobepdf.map -o map.pdf");
        


    Miscellaneous Functions:
    GetMapserverUnitUsingProj(projectionObj); returns integer.
    msFreeImage(imgObj); Frees the memory associated with an image.
    msGetVersion(); returns character
    msGetErrorObj(); returns errorObj
    msGetErrorString(char delimiter); returns character
    msResetErrorList();
    msSaveImage(mapObj,imgObj,filename); Saves an image to a file.
    Set filename to undef to save to stdout.
    The transparent and interlace flags are boolean values.
    The filetype is $mapscript::MS_GIF=GIF, $mapscript::MS_PNG=PNG, $mapscript::MS_JPEG=JPEG, $mapscript::MS_WBMP=WBMP.
    The quality is 0-95. Ignored for all but JPEG.


    Error Handling:
    Current error handling supports returned codes (where applicable).
    Please see the wiki.
    Please see the error codes.


    object here:

    Constructors:
    new mapscript::objecthere

    Members:
  • member here - return here - rw.
  • member here - return here - rw.

  • Methods: Method Description Returns Notes
    method here return here