mapObj
|
holds all mapfile parameters
|
|
|
layerObj
|
holds all layer parameters
|
|
exists within a mapObj
|
classObj
|
holds all class parameters
|
|
exists within a layerObj
|
colorObj
|
|
DBFInfo
|
|
errorObj
|
|
featureListNodeObj
|
|
itemObj
|
|
labelCacheMemberObj
|
holds a single element from the label cache
|
labelCacheObj
|
|
labelObj
|
|
legendObj
|
|
lineObj
|
made up of pointObjs
|
|
may or may not be a closed ring
|
markerCacheMemberObj
|
|
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
|
symbolSetObj
|
|
webObj
|
|
Members:
|
See the mapfile documentation for a list of parameters that can be changed.
|
|
To get/set layer parameters you'll need to use one of the methods defined below.
|
|
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.
|
|
extent - rectObj - rw.
|
|
height - integer - rw.
|
|
imagecolor - colorObj - rw.
|
|
imagequality - integer - rw.
|
|
imagetype - integer - rw.
|
|
interlace - integer - rw.
|
|
labelcache - labelCacheObj - rw.
|
|
latlon - projectionObj - rw.
|
|
layerorder - integer - rw.
|
|
layers - layerObj - rw.
|
|
legend - legendObj - rw.
|
|
name - character - rw.
|
|
numlayers - integer - ro - number of layers in the map.
|
|
palette - paletteObj - rw - paletteObj is used to hold colors while a mapfile is read.
|
|
projection - projectionObj - rw.
|
|
reference - referenceMapObj - rw.
|
|
resolution - integer - rw.
|
|
scale - double - rw.
|
|
scalebar - scalebarObj - rw.
|
|
shapepath - character - rw.
|
|
status - integer - rw.
|
|
transparent - integer - rw.
|
|
units - MS_UNITS - rw.
|
|
web - webObj - rw.
|
|
width - integer - rw.
|
|
map, legend, scalebar, and reference map size use height and width
|
|
legend keysize use keysizex and keysizey
|
|
legend keyspacing use keyspacingx and keyspacingy
|
|
Examples:
|
$minx = $map->{extent}->{minx};
|
|
$map->{interlace} = $mapscript::MS_TRUE;
|
|
$map->{legend}->{keysizex} = 18;
|
|
$map->{legend}->{keyspacingx} = 4;
|
|
$map->{legend}->{label}->{font} = "congobold";
|
|
$map->{legend}->{label}->{sizescaled} = 8; (TT font you use needs to be loaded on your system first.)
|
|
$map->{legend}->{label}->{type}=$mapscript::MS_TRUETYPE;
|
|
$map->{name} = 'example.map';
|
|
$num_layers = $map->{numlayers};
|
|
$map->{scalebar}->{color} = $map->addColor(255,255,255);
|
|
$map->{scalebar}->{width} = 50;
|
Methods:
|
Type
|
Method
|
Description
|
Returns
|
Notes
|
|
integer
|
addColor(integer red,integer green,integer blue)
|
Adds a color to the maps palette.
|
color index
|
Color values can range from 0 to 255. Must be called prior to draw() or prepareImage().
|
|
image
|
draw()
|
Renders a map.
|
map image
|
|
|
integer
|
drawLabelCache(image)
|
Renders the labels for a map.
|
|
Done as part of the draw() method but may need called when using other object draw methods.
|
|
image
|
drawLegend()
|
Renders a legend.
|
legend image
|
|
|
image
|
drawQuery()
|
Renders a query map.
|
query map image
|
|
image
|
drawReferenceMap()
|
Renders a reference map.
|
reference map image
|
|
|
image
|
drawScalebar
|
Renders a scalebar.
|
scalebar image
|
|
|
integer
|
embedLegend(image)
|
Embeds a legend in a map.
|
|
Adds legend to label cache. Invoke drawLabelCache(image) to render (unless postlabelcache is set).
|
|
integer
|
embedScalebar(image)
|
Embeds a scalebar in a map.
|
|
Adds scalebar to label cache. Invoke drawLabelCache(image) to render (unless postlabelcache is set).
|
|
integer
|
getImageToVar(image,character varname)
|
|
|
|
layerObj
|
getLayer(integer index)
|
Retrieves a layer by index.
|
layerObj
|
Layer indexes start with 0. Total number of layers in a mapfile is $map->{numlayers};.
|
|
layerObj
|
getLayerByName(character name)
|
Retrieves a layer by name.
|
layerObj
|
If multiple layers exist with the same name the first occurence is returned.
|
|
character
|
getMetaData(character name)
|
|
|
|
character
|
getProjection()
|
|
|
integer
|
getSymbolByName(character name)
|
Retrieves the symbol index by name.
|
-1 if symbol is not found
|
|
|
labelCacheMemberObj
|
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.
|
|
image
|
prepareImage()
|
Initializes an image for drawing a map.
|
blank image
|
Must be called prior to calling the draw methods for other objects (not draw()).
|
|
void
|
prepareQuery()
|
|
|
|
integer
|
queryByFeatures(int slayer)
|
Queries a group of layers using another set of results.
|
|
|
|
integer
|
queryByPoint(point,int mode,double buffer)
|
Queries a group of layers using a point.
|
|
"mode" is MS_SINGLE or MS_MULTIPLE. Defaults to tolerances set in the mapfile but can use a constant buffer instead.
|
|
integer
|
queryByRect(rectObj)
|
Queries a group of layers using a rectangle.
|
|
|
|
integer
|
queryByShape(shapeObj)
|
|
|
|
integer
|
save(char filename)
|
Writes the contents of a mapfile to disk.
|
|
|
|
integer
|
saveQuery(char filename)
|
|
|
|
integer
|
saveQueryAsGML(char filename)
|
|
|
|
integer
|
setMetaData(char name,char value)
|
|
|
|
integer
|
setProjection(char parameters)
|
Sets the projection and coordinate system for the map.
|
|
Parameters are given as a single string of comma delimited PROJ.4 parameters, ie. "proj=utm,ellps=GRS80,zone=15,north,no_defs".
|
|
integer
|
setWKTProjection(char string)
|
|
|
Members:
|
See the mapfile documentation for a list of parameters that can be changed.
|
|
annotate - integer - rw.
|
|
class - classObj - rw.
|
|
classitem - character - rw.
|
|
classitemindex - integer - rw.
|
|
connection - character - rw.
|
|
connectiontype - MS_CONNECTION_TYPE - rw.
|
|
currentfeature - featureListNodeObj - rw.
|
|
data - character - rw.
|
|
dump - integer - rw.
|
|
features - featureListNodeObj - rw.
|
|
filteritem - character - rw.
|
|
filteritemindex - integer - rw.
|
|
footer - character - rw.
|
|
group - character - rw.
|
|
header - character - rw.
|
|
index - integer - rw.
|
|
items - character - rw.
|
|
iteminfo - void - 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.
|
|
maxfeatures - integer - rw.
|
|
maxscale - double - rw.
|
|
metadata - hashTableObj (hash) - rw.
|
|
minscale - double - rw.
|
|
name - character - rw.
|
|
numclasses - integer - ro - number of classes in the layer.
|
|
numitems - integer - rw.
|
|
offsite - integer - rw - color index to treat as transparent.
|
|
ogrlayerinfo - void - rw.
|
|
oraclespatiallayerinfo - void - rw.
|
|
postgislayerinfo - void - rw.
|
|
postlabelcache - integer - rw.
|
|
projection - projectionObj - rw.
|
|
requires -aracter - rw.
|
|
resultcache - resultCacheObj - rw.
|
|
sdelayerinfo - void - rw.
|
|
shpfile - shapefileObj - rw.
|
|
sizeunits - integer - rw.
|
|
status - integer - rw.
|
|
styleitem - character - rw.
|
|
styleitemindex - integer - rw.
|
|
symbolscale - double - rw.
|
|
template - character - rw..
|
|
tileindex - character - rw.
|
|
tileitem - character - rw.
|
|
tileitemindex - integer - rw.
|
|
tileshpfile - shapefileObj - rw.
|
|
tolerance - double - rw.
|
|
toleranceunits - integer - rw.
|
|
transform - integer - rw.
|
|
type - MS_LAYER_TYPE - rw.
|
|
units - integer - rw.
|
Methods:
|
Type
|
Method
|
Description
|
Returns
|
Notes
|
|
integer
|
addFeature(shapeObj shape)
|
|
-1 on failure
|
|
void
|
close()
|
|
|
|
integer
|
draw(mapObj, image)
|
Draws a single layer and adds labels to the cache if required.
|
|
|
|
integer
|
drawQuery(mapObj, image)
|
|
|
|
classObj
|
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 $class->{numclasses}.
|
|
character
|
getItem(integer)
|
Returns an existing item name.
|
|
|
character
|
getMetaData(character name)
|
|
|
|
character
|
getProjection()
|
|
|
|
resultCacheMemberObj
|
getResult(integer member)
|
Retrieves the nth member of the result cache created by the previous query, ie. queryByPoint.
|
|
|
integer
|
getShape(shapeObj,integer tileindex,integer shapeindex)
|
|
|
|
integer
|
open(character path)
|
|
|
|
integer
|
queryByAttributes(mapObj,integer mode)
|
|
|
|
integer
|
queryByFeatures(mapObj,integer slayer)
|
Queries a single layer using another set of results.
|
|
|
|
integer
|
queryByPoint(mapObj,pointObj,integer mode,double buffer)
|
Queries a single layer using a point.
|
|
"type" is MS_SINGLE or MS_MULTIPLE. Defaults to tolerances set in the mapfile but can use a constant buffer instead.
|
|
integer
|
queryByRect(mapObj,rectObj)
|
Queries a single layer using a rectangle.
|
|
|
|
integer
|
queryByShape(mapObj,shapeObj)
|
|
|
|
integer
|
setFilter(character string filter)
|
|
|
|
integer
|
setProjection(character string parameters)
|
Sets the projection and coordinate system for the map.
|
|
Parameters are given as a single string of comma delimited PROJ.4 parameters, ie. "proj=utm,ellps=GRS80,zone=15,north,no_defs".
|
|
integer
|
setMetaData(character name,character value)
|
|
MS_FAILURE,MS_SUCCESS
|
|
integer
|
setWKTProjection(character string)
|
|
|
|
character
|
getWMSFeatureInfoURL(mapObj,integer click_x,integer click_y,integer feature_count,character info_format)
|
|
|
Members:
|
See the mapfile documentation for a list of parameters that can be changed.
|
|
backgroundcolor - integer - rw.
|
|
color - integer - rw.
|
|
joins - joinObj - rw - see the mapfile documentation.
|
|
label - labelObj - rw.
|
|
maxsize - integer - rw.
|
|
metadata - hashTableObj(hash) - rw.
|
|
minsize - integer - rw.
|
|
name - character - rw.
|
|
numjoins - integer - rw.
|
|
outlinecolor - integer - rw.
|
|
overlaybackgroundcolor - integer - rw.
|
|
overlaycolor - integer - rw.
|
|
overlaymaxsize - integer - rw.
|
|
overlayminsize - integer - rw.
|
|
overlayoutlinecolor - integer - rw.
|
|
overlaysize - integer - rw.
|
|
overlaysizescaled - integer - rw.
|
|
overlaysymbol - integer - rw.
|
|
overlaysymbolname - character - rw.
|
|
size - integer - rw.
|
|
sizescaled - integer - rw.
|
|
status - integer - rw.
|
|
symbol - integer - rw.
|
|
symbolname - character - rw.
|
|
template - character - rw.
|
|
type - integer - rw.
|
Members:
|
bCurrentRecordModified - integer - ro.
|
|
bNoHeader - integer - ro.
|
|
bUpdated - integer - ro.
|
|
fp - file - ro.
|
|
nCurrentRecord - integer - ro.
|
|
nFields - integer - ro.
|
|
nHeaderLength - integer - ro.
|
|
nRecordLength - integer - ro.
|
|
nRecords - integer - ro.
|
|
panFieldDecimals - integer - ro.
|
|
panFieldOffset - integer - ro.
|
|
panFieldSize - integer - ro.
|
|
pachFieldType - character - ro.
|
|
pszCurrentRecord - character - ro.
|
|
pszHeader - character - ro.
|
Examples:
|
This example is the shpinfo.pl sample rewritten to use mapscript DBFInfo instead of the seperate XBase/Xbase module.
|
|
#!/usr/bin/perl
use mapscript;
use Getopt::Long;
%shptypes = ( '1' => 'point',
'3' => 'arc',
'5' => 'polygon',
'8' => 'multipoint'
);
%typetypes = ( '0' => 'String',
'1' => 'Integer',
'2' => 'Double',
'3' => 'Invalid'
);
&GetOptions("file=s", \$file);
if(!$file) {
print "Syntax: shpinfo.pl -file=[filename]\n";
exit 0;
}
$shapefile = new shapefileObj($file, -1) or die "Unable to open shapefile $file.";
print "Shapefile $file:\n\n";
print "\ttype: ". $shptypes{$shapefile->{type}} ."\n";
print "\tnumber of features: ". $shapefile->{numshapes} ."\n";
printf "\tbounds: (%f,%f) (%f,%f)\n", $shapefile->{bounds}->{minx}, $shapefile->{bounds}->{miny}, $shapefile->{bounds}->{maxx}, $shapefile->{bounds}->{maxy};
#
$table = $shapefile->{hDBF};
print "\nDBFInfo table $file.dbf:\n\n";
print "\tnumber of records: ". $table->{nRecords} ."\n";
my $nofields = $table->{nFields};
print "\tnumber of fields: ". $nofields ."\n\n";
print "\tName Type Length Decimals\n";
print "\t---------------- ------- ------ --------\n";
for ($i=0; $i<$nofields; $i++) {
printf "\t%-16s %-7s %6d %8d\n", $table->getFieldName($i), $typetypes{$table->getFieldType($i)}, $table->getFieldWidth($i); $table->getFieldDecimals($i)
}
|
Members:
|
angle - double - rw.
|
|
antialias - integer - rw.
|
|
autoangle - integer - rw.
|
|
autominfeaturesize - integer - rw.
|
|
backgroundcolor - integer - rw.
|
|
backgroundshadowcolor - integer - rw.
|
|
backgroundshadowsizex - integer - rw.
|
|
backgroundshadowsizey - integer - rw.
|
|
buffer - integer - rw.
|
|
color - integer - rw.
|
|
font - character - rw.
|
|
force - integer - rw.
|
|
mindistance - integer - rw.
|
|
minfeaturesize - integer - rw.
|
|
maxsize - integer - rw.
|
|
minsize - integer - rw.
|
|
offsetx - integer - rw.
|
|
offsety - integer - rw.
|
|
outlinecolor - integer - rw.
|
|
partials - integer - rw.
|
|
position - integer - rw.
|
|
shadowcolor - integer - rw.
|
|
shadowsizex - integer - rw.
|
|
shadowsizey - integer - rw.
|
|
size - integer - rw.
|
|
sizescaled - integer - rw.
|
|
type - MS_FONT_TYPE - rw.
|
|
wrap - character - rw.
|
Methods:
|
Type
|
Method
|
Description
|
Returns
|
Notes
|
|
double
|
distanceToLine(pointObj a,pointObj b)
|
|
|
|
|
double
|
distanceToShape(shapeObj)
|
|
-1 if shape type is not recognized
|
|
|
double
|
distanceToPoint(pointObj)
|
|
|
|
|
integer
|
draw(mapObj,layerObj,image,integer class_index,character text)
|
Draws an individual point using layerObj.
|
|
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.
|
|
integer
|
project(pointObj in,pointObj out)
|
|
|
|
Methods:
|
Type
|
Method
|
Description
|
Returns
|
Notes
|
|
integer
|
draw(mapObj,layerObj,image,integer class_index,character text)
|
Draws an individual rectangle using layerObj.
|
0 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.
|
|
double
|
fit(integer width,integer height)
|
Adjusts a rectangle to fit a size.
|
|
|
|
integer
|
project(projectionObj in,projectionObj out)
|
|
|
|
Methods:
|
Type
|
Method
|
Description
|
Returns
|
Notes
|
|
integer
|
add(shapeObj)
|
Appends a shape to an open file.
|
|
|
|
integer
|
addPoint(pointObj)
|
|
|
|
|
integer
|
get(integer index,shapeObj)
|
Retrieves a shape by index.
|
-1 if index is < 0 or >= number of shapes
|
|
|
void
|
getExtent(integer index,rectObj)
|
Retrieves a shape bounding box by index.
|
|
|
|
integer
|
getPoint(integer index,pointObj)
|
|
-1 if index is < 0 or >= number of shapes
|
|
|
integer
|
getTransformed(mapObj,integer index,shapeObj)
|
|
-1 if index is < 0 or >= number of shapes
|
|
Methods:
|
Type
|
Method
|
Description
|
Returns
|
Notes
|
|
integer
|
add(lineObj)
|
Adds a line to the shape.
|
|
|
|
integer
|
contains(pointObj)
|
|
-1 if shape is not polygon
|
|
integer
|
copy(shapeObj destination)
|
|
integer
|
draw(mapObj,layerObj,image)
|
Draws an individual shape using layerObj.
|
|
|
|
lineObj
|
get(integer index)
|
|
character
|
getValue(integer index)
|
returns an existing value.
|
|
integer
|
intersects(shapeObj)
|
|
-1 if shape is not line or polygon
|
|
integer
|
project(projectionObj in,projectionObj out)
|
|
void
|
setBounds()
|