Location: PHPKode > projects > PhpArcIMS > phpConnector/phparcims_symbol.php
<?php
/*
*    Copyright 2001, Christoph Spoerri
*
*    This file is part of the phpArcIMS connector.
*
*    phpArcIMS is free software; you can redistribute it and/or modify
*    it under the terms of the GNU General Public License as published by
*    the Free Software Foundation; either version 2 of the License, or
*    (at your option) any later version.
*
*    phpArcIMS is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*    GNU General Public License for more details.
*
*    You should have received a copy of the GNU General Public License
*    along with Foobar; if not, write to the Free Software
*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*
*/
/*
	CHANGE LOG
*/

/**
* Defines the font style to be regular
* @package phparcims_symbol
* @constant string FONTSTYLE_REGULAR
*/
define (FONTSTYLE_REGULAR, 'regular');
/**
* Defines the font style to be bold
* @package phparcims_symbol
* @constant string FONTSTYLE_BOLD
*/
define (FONTSTYLE_BOLD, 'bold');
/**
* Defines the font style to be italic
* @package phparcims_symbol
* @constant string FONTSTYLE_ITALIC
*/
define (FONTSTYLE_ITALIC, 'italic');
/**
* Defines the font style to be underline
* @package phparcims_symbol
* @constant string FONTSTYLE_UNDERLINE
*/
define (FONTSTYLE_UNDERLINE, 'underline');
/**
* Defines the font style to be outline
* @package phparcims_symbol
* @constant string FONTSTYLE_OUTLINE
*/
define (FONTSTYLE_OUTLINE,'outline');
/**
* Defines the font style to be bolditalic
* @package phparcims_symbol
* @constant string FONTSTYLE_BOLDITALIC
*/
define (FONTSTYLE_BOLDITALIC,'bolditalic');

define (CHART_PIE, 'pie');
define (CHART_BAR, 'bar');

define (GRADIENT_BDIAG, 'bdiagonal');
define (GRADIENT_BDIAG, 'fdiagonal');
define (GRADIENT_HORIZONTAL, 'horizontal');
define (GRADIENT_VERTICAL,'vertical');

//4. HASHLINESYMBOL type ="foreground | background" [foreground]

define (PRINTMODE_TITLECAPS,'titlecaps');
define (PRINTMODE_UPPER,'allupper');
define (PRINTMODE_LOWER,'alllower');
define (PRINTMODE_NONE,'none');

define (SHIELD_INTERSTATE,'interstate');
define (SHIELD_USROAD,'usroad');
define (SHIELD_RECT,'rect');
define (SHIELD_OVAL,'oval');

define (LABEL_FULL, 'full');
define (LABEL_NUMERIC, 'numericonly');

define (TEXT_TOP,'top');
define (TEXT_CENTER, 'center');
define (TEXT_BOTTOM, 'bottom');
define (TEXT_LEFT, 'left');
define (TEXT_RIGHT, 'right');

define (TT_ROTATE_GEO, 'geographic');
define (TT_ROTATE_ARITH, 'arithmetic');
define (TT_ROTATE_MOD, 'mod_arithmetic');

/**
* This is an abstract class. Use one of its subclasses to create a symbol.
* @class aimsAbstrSymbol
* @package phparcims_symbol
*/
class aimsAbstrSymbol {
	/**
	* <blockquote style="font-family: arial; background-color:#EEEEEE">
	* Used to make edges of labels and symbols smoother. When set to TRUE,
	* antialiasing is active. Note that the time to generate a map may significantly increase when
	* antialiasing is turned on.
	* <p><sup>(ESRI)</sup></p></blockquote>
	* @brief Specifies if antialising should be used for symbol.
	* @class aimsAbstrSymbol
	* @attribute public bool Antialiasing
	*/
	var $Antialiasing;
	/**
	* <blockquote style="font-family: arial; background-color:#EEEEEE">
	* Value to set percentage of transparency. 1.0 is 0 percent
	* transparent. 0.0 is 100 percent transparent.
	* <p><sup>(ESRI)</sup></p></blockquote>
	* @brief Specifies symbol transparency.
	* @class aimsAbstrSymbol
	* @attribute public int Transparency
	*/
	var $Transparency;

	/**
	* Abstract class, is never created directly.
	* @constructor aimsAbstrSymbol
	*/
	function aimsAbstrSymbol() {
		$this->Antialiasing = FALSE;
		$this->Transparency = 1;
	}

	/**
	* Returns the ArcXML attributes of the child object.
	* @class aimsAbstrSymbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent='') {
		$tagStr='antialiasing="'.($this->Antialiasing?'true':'false').'" ';
		$tagStr.='transparency="'.$this->Transparency.'" ';
		return $tagStr;
	}
}

/**
* This is an abstract class. Use one of its subclasses to create a symbol.
* @class aimsAbstrLineSymbol
* @package phparcims_symbol
* @extends aimsAbstrSymbol
*/
class aimsAbstrLineSymbol extends aimsAbstrSymbol {
	/**
	* The color of the line given as RGB values, e.g. array(0,234,234).
	* @class aimsAbstrLineSymbol
	* @attribute public array Color
	*/
	var $Color;
	/**
	* <blockquote style="font-family: arial; background-color:#EEEEEE">
	* Determines if labels can overlap this symbol. When TRUE, labels
	* can overlap. When FALSE, labels will not overlap the symbol. If labels are not drawing as expected,
	* check if overlap is set to FALSE for this symbol or any other symbol in the ArcIMS service.
	* <p><sup>(ESRI)</sup></p></blockquote>
	* @brief Specifies if labels can overlap symbol.
	* @class aimsAbstrLineSymbol
	* @attribute public bool Overlap
	*/
	var $Overlap;
	/**
	* The width of the line symbol.
	* @class aimsAbstrLineSymbol
	* @attribute public int Width
	*/
	var $Width;

	/**
	* Abstract class, is never created directly.
	* @constructor aimsAbstrLineSymbol
	*/
	function aimsAbstrLineSymbol() {
		parent::aimsAbstrSymbol();
		$this->Overlap = TRUE;
		$this->Width = 0;
	}

	/**
	* Returns the ArcXML attributes of the child object.
	* @class aimsAbstrLineSymbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent='') {
		$tagStr=parent::returnTag($parent);
		$tagStr.='overlap="'.($this->Overlap?'true':'false').'" ';
		$tagStr.='width="'.$this->Width.'" ';
		if (isset($this->Color)) {$tagStr.='color="'.implode(',',$this->Color).'" ';}
		return $tagStr;
	}
}

/**
* This is an abstract class. Use one of its subclasses to create a symbol.
* @class aimsAbstrFont1Symbol
* @extends aimsAbstrSymbol
* @package phparcims_symbol
*/
class aimsAbstrFont1Symbol extends aimsAbstrSymbol {
	/**
	* <blockquote style="font-family: arial; background-color:#EEEEEE">
	* Font name. The name is case sensitive. If font name uses "&",
	* use "&amp;" instead. For example, ESRI Transportation & Civic should be written as
	* ESRI Transportation &amp; Civic. For Feature Services, the font must reside on the client
	* machine or else the system default font is used.
	* <p><sup>(ESRI)</sup></p></blockquote>
	* @brief The font name.
	* @class aimsAbstrFont1Symbol
	* @attribute public string Font
	*/
	var $Font;
	/**
	* The font color given as RGB values, e.g. array(0,234,234).
	* @class aimsAbstrFont1Symbol
	* @attribute public array Fontcolor
	*/
	var $Fontcolor;
	/**
	* The font size.
	* @class aimsAbstrFont1Symbol
	* @attribute public int Fontsize
	*/
	var $Fontsize;
	/**
	* The font style. It can be set by using the global constants {@link FONTSTYLE_REGULAR},
	* {@link FONTSTYLE_BOLD}, {@link FONTSTYLE_ITALIC}, {@link FONTSTYLE_UNDERLINE}, {@link FONTSTYLE_OUTLINE}
	* or {@link FONTSTYLE_BOLDITALIC}.
	* @brief The font sytle.
	* @class aimsAbstrFont1Symbol
	* @attribute public string Fontstyle
	*/
	var $Fontstyle;

	/**
	* Abstract class, is never created directly.
	* @constructor aimsAbstrFont1Symbol
	*/
	function aimsAbstrFont1Symbol( ) {
		parent::aimsAbstrSymbol();
		$this->Font = 'Arial';
		$this->Fontcolor = array(0,0,0);
		$this->Fontsize = 12;
		$this->Fontstyle = 'regular';
	}
	/**
	* Returns the ArcXML attributes of the child object.
	* @class aimsAbstrFont1Symbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent='') {
		$tagStr=parent::returnTag($parent);
		$tagStr.='font="'.$this->Font.'" ';
		$tagStr.='fontsize="'.$this->Fontsize.'" ';
		$tagStr.='fontcolor="'.implode(',',$this->Fontcolor).'" ';
		$tagStr.='fontstyle="'.$this->Fontstyle.'" ';
		return $tagStr;
	}
}

/**
* This is an abstract class. Use one of its subclasses to create a symbol.
* @class aimsAbstrFont2Symbol
* @extends aimsAbstrFont1Symbol
* @package phparcims_symbol
*/
class aimsAbstrFont2Symbol extends aimsAbstrFont1Symbol {
	/**
	* The outline color given as RGB values, e.g. array(0,234,234).
	* @class aimsAbstrFont2Symbol
	* @attribute public array Outline
	*/
	var $Outline;
	/**
	* The 'glow' color given as RGB values, e.g. array(0,234,234).
	* @class aimsAbstrFont2Symbol
	* @attribute public array Glowing
	*/
	var $Glowing;
	/**
	* The distance in pixel from the first point of the feature to label.
	* @class aimsAbstrFont2Symbol
	* @attribute public int Interval
	*/
	var $Interval;
	/**
	* The shadow color given as RGB values, e.g. array(0,234,234).
	* @class aimsAbstrFont2Symbol
	* @attribute public array Shadow
	*/
	var $Shadow;

	/**
	* Abstract class, is never created directly.
	* @constructor aimsAbstrFont2Symbol
	*/
	function aimsAbstrFont2Symbol( ){
		parent::aimsAbstrFont1Symbol();
		$this->Interval = 10;
	}
	/**
	* Returns the ArcXML attributes of the child object.
	* @class aimsAbstrFont2Symbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent='') {
		$tagStr=parent::returnTag($parent);
		if ($this->Outline) $tagStr.=' outline="'.implode(',',$this->Outline).'" ';
		if ($this->Glowing) $tagStr.=' glowing="'.implode(',',$this->Glowing).'" ';
		if ($this->Shadow) $tagStr.=' shadow="'.implode(',',$this->Shadow).'" ';
		$tagStr.=' interval="'.$this->Interval.'" ';
		return $tagStr;
	}
}

/**
* This is an abstract class. Use one of its subclasses to create a symbol.
* @class aimsAbstrFont3Symbol
* @extends aimsAbstrFont1Symbol
* @package phparcims_symbol
*/
class aimsAbstrFont3Symbol extends aimsAbstrFont1Symbol
{
	var $Angle;
	/**
	* The 'glow' color given as RGB values, e.g. array(0,234,234).
	* @class aimsAbstrFont3Symbol
	* @attribute public array Glowing
	*/
	var $Glowing;
	/**
	* The 'glow' color given as RGB values, e.g. array(0,234,234).
	* @class aimsAbstrFont2Symbol
	* @attribute public array Glowing
	*/
	var $Outline;
	/**
	* <blockquote style="font-family: arial; background-color:#EEEEEE">
	* Determines if labels can overlap this symbol. When TRUE, labels
	* can overlap. When FALSE, labels will not overlap the symbol. If labels are not drawing as expected,
	* check if overlap is set to FALSE for this symbol or any other symbol in the ArcIMS service.
	* <p><sup>(ESRI)</sup></p></blockquote>
	* @brief Specifies if labels can overlap symbol.
	* @class aimsAbstrLineSymbol
	* @attribute public bool Overlap
	*/
	var $Overlap;


	function aimsAbstrFont3Symbol( ) {
		parent::aimsAbstrFont1Symbol();
		$Angle = 0;
		$Overlap = TRUE;
	}

	/**
	* Returns the ArcXML attributes of the child object.
	* @class aimsAbstrFont3Symbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent='') {
		$tagStr=parent::returnTag($parent);
		if ($this->Outline) $tagStr.=' outline="'.implode(',',$this->Outline).'" ';
		if ($this->Glowing) $tagStr.=' glowing="'.implode(',',$this->Glowing).'" ';
		$tagStr.=' overlap="'.($this->Overlap?'true':'false').'" ';
		$tagStr.=' angle="'.$this->Angle.'" ';
		return $tagStr;
	}
}



/**
* <blockquote style="font-family: arial; background-color:#EEEEEE">
* <b>Description</b>: Symbolizes point features using one of the predefined symbol types:
* circle, triangle, square, cross, or star.
* <p><b>Restrictions</b>:
* <ul>
* <li>{@link aimsSimpleMarkerSymbol::Overlap} is valid only for Image Services.
* It is ignored when using Feature Services.</li>
* <li>In ArcMap Image Services, symbol is valid only in {@link aimsAcetateLayer}.</li>
* <li>Known limitation with {@link aimsSimpleMarkerSymbol::Outline} in ArcMap Image Services:
* An outline does not show when the attribute type is "triangle" or "star".</li>
* </ul>
* <p><sup>(ESRI)</sup></p></blockquote>
* @class aimsSimpleMarkerSymbol
* @package phparcims_symbol
* @extends aimsAbstrLineSymbol
*/
class aimsSimpleMarkerSymbol extends aimsAbstrLineSymbol {
	/**
	* Outline color using RGB values in the format array(R,G,B).
	* @class aimsSimpleMarkerSymbol
	* @attribute public array Outline
	*/
	var $Outline; //"0,0,0 - 255,255,255
	/**
	* Shadow color using RGB values in the format array(R,G,B).
	* @class aimsSimpleMarkerSymbol
	* @attribute public array Shadow
	*/
	var $Shadow; //"0,0,0 - 255,255,255"
	/**
	* <blockquote style="font-family: arial; background-color:#EEEEEE">
	* By default, a marker symbol used on polygon layers draws markers at all polygon vertices.
	* If usecentroid is "true", marker is placed in the centroid of the polygon. If multiple polygon
	* parts exist, the marker falls on the part with the biggest area.
	* <p><sup>(ESRI)</sup></p></blockquote>
	* @brief Specifies if symbol should be drawn in the center of feature.
	* @class aimsSimpleMarkerSymbol
	* @attribute public bool Usecentroid
	*/
	var $Usecentroid; //"true | false" [false]
	/**
	* Symbol type. Possible values are: circle | triangle | square | cross | star (Default: circle).
	* @class aimsSimpleMarkerSymbol
	* @attribute public string Type
	*/
	var $Type;

	/**
	* Creates a aimsSimpleMarkerSymbol object of type aType.
	* See {@link aimsSimpleMarkerSymbol::Type} for possible types.
	* @constructor aimsSimpleMarkerSymbol
	* @param optional string aType The type of marker symbol (default=circle).
	* @return void
	*/
	function aimsSimpleMarkerSymbol($t='circle') {
		parent::aimsAbstrLineSymbol();
		$this->Type = $t;
		$this->Usecentroid = TRUE;
	}
	/**
	* Returns the ArcXML tag of the object.
	* @class aimsSimpleMarkerSymbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent=''){
		$tagStr='<SIMPLEMARKERSYMBOL';
		$tagStr.=parent::returnTag($parent);
		if (isset($this->Outline)) $tagStr.=' outline="'.$this->Outline.'" ';
		if (isset($this->Shadow)) $tagStr.=' shadow="'.$this->Shadow.'" ';
		$tagStr.=' type="'.$this->Type.'" ';
		$tagStr.=' usecentroid="'.$this->Usecentroid.'" ';
		return $tagStr.'></SIMPLEMARKERSYMBOL>';
	}
}

/**
* <blockquote style="font-family: arial; background-color:#EEEEEE">
* <b>Description</b>: Symbol for line features.
* <p><b>Restrictions</b>:
* <ul>
* <li>Overlap is valid only for Image Services. It is ignored when using Feature Services.</li>
* <li>In ArcMap Image Services, symbol is valid only in acetate layers.</li>
* </ul>
* <p><sup>(ESRI)</sup></p></blockquote>
* @class aimsSimpleLineSymbol
* @package phparcims_symbol
* @extends aimsAbstrLineSymbol
*/
class aimsSimpleLineSymbol extends aimsAbstrLineSymbol {
	/**
	* Specify the line ends: butt | round | square (default = butt).
	* @class aimsSimpleLineSymbol
	* @attribute public string Captype
	*/
	var $Captype='';
	/**
	* Specify how line jointes are drawn: round | miter | bevel (default = round).
	* @class aimsSimpleLineSymbol
	* @attribute public string Jointype
	*/
	var $Jointype='';
	/**
	* Specifies the line type: solid | dash | dot | dash_dot | dash_dot_dot (default = solid).
	* @class aimsSimpleLineSymbol
	* @attribute public string Type
	*/
	var $Type='';

	/**
	* Defines a line symbol.
	* @constructor aimsSimpleLineSymbol
	* @package phparcims_symbol
	*/
	function aimsSimpleLineSymbol() {
		parent::aimsAbstrLineSymbol();
		$this->Captype = 'butt';
		$this->Jointype = 'round';
		$this->Type = 'solid';
	}

	/**
	* Returns the ArcXML tag of the object.
	* @class aimsSimpleLineSymbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent='') {
		$tagStr='<SIMPLELINESYMBOL ';
		$tagStr.=parent::returnTag($parent);
		$tagStr.='captype ="'.$this->Captype.'" ';
		$tagStr.='jointype ="'.$this->Jointype.'" ';
		$tagStr.='type ="'.$this->Type.'" ';
		return $tagStr.'></SIMPLELINESYMBOL>';
	}
}

/**
* <blockquote style="background-color:#EEEEEE;">
* <b>Description</b>: Symbol for polygon features.
* <p><b>Restrictions</b>:<ul>
* <li>Overlap is valid only for Image Services. It is ignored when using Feature Services.</li>
* <li>In ArcMap Image Services, symbol is valid only in acetate layers.</li>
* </ul></p>
* <b>Notes</b>:<ul>
* <li>For more complex boundary symbols, SIMPLELINESYMBOL can be used on polygon layers.</li>
* <li>Transparency takes precedence over filltransparency and boundarytransparency.</li>
* <li>To make both the fill and boundary of a polygon transparent, set filltransparency="0.0" and boundarytransparency="0.0". Do not use transparency.</li>
* </ul>
* <p><sup>(ESRI)</sup></p></blockquote>
* @class aimsSimplePolygonSymbol
* @package phparcims_symbol
* @inherited aimsAbstrSymbol
*/
class aimsSimplePolygonSymbol extends aimsAbstrSymbol{
	/**
	* Specifies if polygon has a boundary or not (default = TRUE).
	* @class aimsSimplePolygonSymbol
	* @attribute public bool Boundary
	*/
	var $Boundary;
	/**
	* The boundary color using RGB values in the format 'R,G,B' (e.g. array(234,234,0)).
	* @class aimsSimplePolygonSymbol
	* @attribute public array Boundarycolor
	*/
	var $Boundarycolor;
	/**
	* The boundary line end type: butt | round | square (default=butt).
	* @class aimsSimplePolygonSymbol
	* @attribute public string Boundarycaptype
	*/
	var $Boundarycaptype;
	/**
	* The boundary line join types: round | miter | bevel (default = round).
	* @class aimsSimplePolygonSymbol
	* @attribute public string Boundaryjointype
	*/
	var $Boundaryjointype;
	/**
	* The precentage of boundary transparency: 1.0 to 0.0 (0.0 = 100% transparency).
	* @class aimsSimplePolygonSymbol
	* @attribute public array Boundarytransparency
	*/
	var $Boundarytransparency;
	/**
	* The boundary type: solid | dash | dot | dash_dot | dash_dot_dot (default = solid).
	* @class aimsSimplePolygonSymbol
	* @attribute public string Boundarytype
	*/
	var $Boundarytype;
	/**
	* The width of the boundary.
	* @class aimsSimplePolygonSymbol
	* @attribute public int Boundarywidth
	*/
	var $Boundarywidth;
	/**
	* The fill color using RGB values in the format 'R,G,B' (e.g. array(234,234,0)).
	* @class aimsSimplePolygonSymbol
	* @attribute public array Fillcolor
	*/
	var $Fillcolor;
	/**
	* The distance between the lines for hatch patterns.
	* @class aimsSimplePolygonSymbol
	* @attribute public int Fillinterval
	*/
	var $Fillinterval;
	/**
	* The transparency used for the filling the polygon. 1.0 to 0.0 (0.0 = 100% transparency).
	* @class aimsSimplePolygonSymbol
	* @attribute public array Filltransparency
	*/
	var $Filltransparency;
	/**
	* The fill type: solid | bdiagonal | fdiagonal | cross | diagcross | horizontal | vertical | gray | lightgray | darkgray (default=solid).
	* @class aimsSimplePolygonSymbol
	* @attribute public string Filltype
	*/
	var $Filltype;
	/**
	* <blockquote style="font-family: arial; background-color:#EEEEEE">
	* Determines if labels can overlap this symbol. When TRUE, labels can
	* overlap. When FALSE, labels will not overlap the symbol. If labels are not drawing as expected, check
	* if overlap is set to FALSE for this symbol or any other symbol in the ArcIMS service.
	* <p><sup>(ESRI)</sup></p></blockquote>
	* @class aimsSimplePolygonSymbol
	* @attribute public bool Overlap
	*/
	var $Overlap;

	/**
	* Constructor for aimsSimplePolygonSymbol.
	* @constructor aimsSimplePolygonSymbol
	* @package phparcims_symbol
	*/
	function aimsSimplePolyonSymbol()
	{
		parent::aimsAbstrSymbol();
		$this->Boundary = TRUE;
		$this->Boundarycolor = array(0,0,0);
		$this->Boundarycaptype = 'butt';
		$this->Boundaryjointype = 'round';
		$this->Boundarytransparency = 1;
		$this->Boundarytype = 'solid';
		$this->Boundarywidth = 1;
		$this->Fillcolor = array(0,200,0);
		$this->Fillinterval = 6;
		$this->Filltransparency = 1;
		$this->Filltype = 'solid';
		$this->Overlap = TRUE;
	}

	/**
	* Returns the ArcXML tag of the object.
	* @class aimsSimplePolygonSymbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent=''){
		$tagStr='<SIMPLEPOLYGONSYMBOL ';
		$tagStr.=parent::returnTag($parent);
		if ($this->Boundary) $tagStr.='boundary ="'.$this->Boundary.'" ';
		if ($this->Boundarycaptype) $tagStr.=' boundarycaptype="'.$this->Boundarycaptype.'" ';
		if ($this->Boundarycolor) $tagStr.=' boundarycolor="'.implode(',',$this->Boundarycolor).'" ';
		if ($this->Boundaryjointype) $tagStr.=' boundaryjointype="'.$this->Boundaryjointype.'" ';
		if ($this->Boundarytransparency) $tagStr.=' boundarytransparency="'.$this->Boundarytransparency.'" ';
		if ($this->Boundarytype) $tagStr.=' boundarytype="'.$this->Boundarytype.'" ';
		if ($this->Boundarywidth) $tagStr.=' boundarywidth="'.$this->Boundarywidth.'" ';
		if ($this->Fillcolor) $tagStr.=' fillcolor="'.implode(',',$this->Fillcolor).'" ';
		if ($this->Fillinterval) $tagStr.=' fillinterval="'.$this->Fillinterval.'" ';
		if ($this->Filltransparency) $tagStr.=' filltransparency="'.$this->Filltransparency.'" ';
		if ($this->Filltype) $tagStr.=' filltype="'.$this->Filltype.'" ';
		if ($this->Overlap) $tagStr.=' overlap="'.$this->Overlap.'" ';
		return $tagStr.'></SIMPLEPOLYGONSYMBOL>';
	}
}

/**
* <blockquote style="font-family: arial; background-color:#EEEEEE">
* <b>Description</b>: Symbol used to label point, line, and
* polygon layers.
* <p><b>Restrictions</b>:<ul>
* <li>Outline and glowing should not be used together; use one or the other.</li>
* <li>Not valid with ArcMap Server.</li>
* </ul>
* </p><b>Notes</b>:<ul>
* <li>aimsTextSymbol is used to label features in layers. To add text to an {@link aimsAcetateLayer}, use an {@link aimsText} object.</li>
* </ul>
* <p><sup>(ESRI)</sup></p></blockquote>
* @brief Symbol used to define text
* @class aimsTextSymbol
* @package phparcims_symbol
* @extends aimsAbstrFont2Symbol
*/
class aimsTextSymbol extends aimsAbstrFont2Symbol {
	/**
	* The background color using RGB values in the format 'R,G,B' (e.g. array(234,234,0)).
	* @class aimsTextSymbol
	* @attribute public array Blockout
	*/
	var $Blockout;
	/**
	* <blockquote style="font-family: arial; background-color:#EEEEEE">
	* Determines how labels are printed. If "none" is used, no change is
	* made to the label: Welcome to ArcIMS. If "alllower" is used, all letters are lowercase: welcome to
	* arcims. If "allupper" is used, all letters are uppercase: WELCOME TO ARCIMS. If "titlecaps" is used,
	* the first letter of each word in a label is uppercase and everything else is lowercase: Welcome To
	* Arcims.
	* <p><sup>(ESRI)</sup></p></blockquote>
	* Values: titlecaps | allupper | alllower | none (default=none)
	* @brief Specifies how labels should be printed.
	* @class aimsTextSymbol
	* @attribute public string Printmode
	*/
	var $Printmode;

	/**
	* Constructor for aimsTextSymbol.
	* @constructor aimsTextSymbol
	*/
	function aimsTextSymbol( ) {
		parent::aimsAbstrFont2Symbol();
		$this->Printmode = none;
	}

	/**
	* Returns the ArcXML tag of the object.
	* @class aimsTextSymbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent='') {
		$tagStr='<TEXTSYMBOL ';
		$tagStr.=parent::returnTag($parent);
		if ($this->Blockout) $tagStr.='blockout ="'.$this->Blockout.'" ';
		if ($this->Printmode) $tagStr.='printmode ="'.$this->Printmode.'" ';
		return $tagStr.' />';
   }
}

/**
* <blockquote style="font-family: arial; background-color:#EEEEEE">
* <b>Description</b>: Adds static text to an {@link aimsAcetateLayer}.
* <p><b>Restrictions</b>:<ul>
* <li>aimsTextMarkerSymbol is part of an object in an {@link aimsAcetateLayer} and can only be used with Image
* Services in an HTML viewer.</li>
* <li>Outline and glowing should not be used together; use one or the other.</li>
* <li>This element is not available from the ArcIMS Author interface.</li>
* </ul></p>
* <b>Notes</b>:<ul>
* <li>aimsTextMarkerSymbol is used only in {@link aimsAcetateLayer}. To label features, use {@link aimsTextSymbol}.</li>
* </ul>
* <p><sup>(ESRI)</sup></p></blockquote>
* @class aimsTextMarkerSymbol
* @package phparcims_symbol
* @extends aimsAbstrFont3Symbol
*/
class aimsTextMarkerSymbol extends aimsAbstrFont3Symbol {
	/**
	* The background color using RGB values in the format 'R,G,B' (e.g. array(234,234,0)).
	* @class aimsTextMarkerSymbol
	* @attribute public array Blockout
	*/
	var $Blockout;
	/**
	* Specifies the horizontal alignment of the text: left | center | right (default = right).
	* @class aimsTextMarkerSymbol
	* @attribute public string Halignment
	*/
	var $Halignment;
	/**
	* @class aimsTextMarkerSymbol
	* @attribute public string Interval
	*/
	var $Interval;
	/**
	* Specifies the vertical alignment of the text: top | center | bottom (default = top).
	* @class aimsTextMarkerSymbol
	* @attribute public string Valignment
	*/
	var $Valignment;
	/**
	* <blockquote style="font-family: arial; background-color:#EEEEEE">
	* Determines how labels are printed. If "none" is used, no change is
	* made to the label: Welcome to ArcIMS. If "alllower" is used, all letters are lowercase: welcome to
	* arcims. If "allupper" is used, all letters are uppercase: WELCOME TO ARCIMS. If "titlecaps" is used,
	* the first letter of each word in a label is uppercase and everything else is lowercase: Welcome To
	* Arcims.
	* <p><sup>(ESRI)</sup></p></blockquote>
	* Values: titlecaps | allupper | alllower | none (default=none)
	* @brief Specifies how labels should be printed.
	* @class aimsTextMarkerSymbol
	* @attribute public string Printmode
	*/
	var $Printmode;

	/**
	* Constructor for aimsTextMarkerSymbol.
	* @constructor aimsTextMarkerSymbol
	* @package phparcims_symbol
	*/
	function aimsTextMarkerSymbol( )
	{
		parent::aimsAbstrFont3Symbol();
		$this->Halignment = 'right';
		$this->Interval = 0;
		$this->Valignment = 'top';
		$this->Printmode = 'none';
	}

	/**
	* Returns the ArcXML tag of the object.
	* @class aimsTextMarkerSymbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent='') {
		$tagStr='<TEXTMARKERSYMBOL ';
		$tagStr.=parent::returnTag($parent);
		if ($this->Blockout) $tagStr.='blockout ="'.$this->Blockout.'" ';
		if ($this->Halignment) $tagStr.='halignment ="'.$this->Halignment.'" ';
		if ($this->Interval) $tagStr.='interval ="'.$this->Interval.'" ';
		if ($this->Printmode) $tagStr.='printmode ="'.$this->Printmode.'" ';
		if ($this->Valignment) $tagStr.='valignment ="'.$this->Valignment.'" ';
		return $tagStr.' />';
   }
}

/**
* @class aimsRasterFillSymbol
* @package phparcims_symbol
* @extends aimsAbstrSymbol
*/
class aimsRasterFillSymbol extends aimsAbstrSymbol {
	var $Image;
	var $Overlap;
	var $Url;

	function aimsRasterFillSymbol( ) {
		parent::aimsAbstrSymbol();
		$this->Overlap = TRUE;
	}

	/**
	* Returns the ArcXML tag of the object.
	* @class aimsRasterFillSymbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent='') {
		$tagStr='<RASTERFILLSYMBOL ';
		$tagStr.=parent::returnTag($parent);
		return $tagStr.' />';
	}
}

/**
* @class aimsRasterMarkerSymbol
* @package phparcims_symbol
* @extends aimsRasterFillSymbol
*/
class aimsRasterMarkerSymbol extends aimsRasterFillSymbol {
	var $Hotspot;
	var $Shadow;
	var $Size;
	var $Usecentroid;


	function aimsRasterMarkerSymbol( )
	{
		$this->Usecentroid = TRUE;
	}

	/**
	* Returns the ArcXML tag of the object.
	* @class aimsRasterMarkerSymbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent='') {
		$tagStr='<RASTERMARKERSYMBOL ';
		$tagStr.=parent::returnTag($parent);
		return $tagStr.' />';
	}
}

/**
* @class aimsTrueTypeMarkerSymbol
* @package phparcims_symbol
* @extends aimsAbstrFont3Symbol
*/
class aimsTrueTypeMarkerSymbol extends aimsAbstrFont3Symbol {
	var $Anglefield;
	var $Character;
	var $Rotatemethod;
	var $Shadow;
	var $Usecentroid;

	function aimsTrueTypeMarkerSymbol( )
	{
		$this->Rotatemethod = 'mod_arithmetic';
		$this->Usecentroid = TRUE;
	}

	/**
	* Returns the ArcXML tag of the object.
	* @class aimsTrueTypeMarkerSymbol
	* @method public returnTag
	* @param string Parent The parent tag.
	* @return String The ArcXML tag for this object.
	*/
	function returnTag($parent='') {
		$tagStr='<TRUETYPEMARKERSYMBOL ';
		$tagStr.=parent::returnTag($parent);
		return $tagStr.' />';
	}

}

















class aimsSymbol{
// antialiasing ="true | false" [false]
// transparency ="0.0 - 1.0" [1.0]
/*   var $Antialiasing;
   var $Transparency; //="0.0 - 1.0" [1.0]
*/

/*
Possible symbols are
1. CALLOUTMARKERSYMBOL
backcolor ="0,0,0 - 255,255,255" [255,255,255]
boundarycolor ="0,0,0 - 255,255,255" [0,0,0]
font ="Any system font" [Arial]
fontcolor ="0,0,0 - 255,255,255" [0,0,0]
fontsize ="1 - NNN" [12]
fontstyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
glowing ="0,0,0 - 255,255,255"
interval ="0 - NNN" [10]
outline ="0,0,0 - 255,255,255"
shadow ="0,0,0 - 255,255,255"

2. CHARTSYMBOL
maxsize ="1 - NNN"
maxvalue ="1 - NNN"
minsize ="1 - NNN"
minvalue ="1 - NNN"
mode ="pie | bar" [pie]
outline ="0,0,0 - 255,255,255" [none]
shadow ="0,0,0 - 255,255,255"
size ="1 - NNN"
sizefield ="string"

3. GRADIENTFILLSYMBOL
finishcolor ="0,0,0 - 255,255,255" [0,255,0]
overlap ="true | false" [true]
startcolor ="0,0,0 - 255,255,255" [255,0,0]
type ="bdiagonal | fdiagonal | horizontal | vertical" [bdiagonal]

4. HASHLINESYMBOL
color ="0,0,0 - 255,255,255" [0,0,0]
interval ="0 - NNN" [8]
linethickness ="1 - NNN" [1]
overlap ="true | false" [true]
tickthickness ="1 - NNN" [1]
type ="foreground | background" [foreground]
width ="1 - NNN" [6]

5. RASTERFILLSYMBOL
image ="path to image file"
url ="url string"
overlap ="true | false" [true]

6. RASTERMARKERSYMBOL
image ="path to image file"
url ="url string"
hotspot ="0,0 - N,N" [centered]
overlap ="true | false" [true]
shadow ="0,0,0 - 255,255,255"
size ="1,1 - N,N"
usecentroid ="true | false" [false]

7. RASTERSHIELDSYMBOL
image ="path to image file"
url ="url string"
boundary ="true | false" [false]
font ="Any system font" [Arial]
fontcolor ="0,0,0 - 255,255,255" [0,0,0]
fontsize ="1 - NNN" [12]
fontstyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
labelmode ="full | numericonly" [numericonly]
printmode ="titlecaps | allupper | alllower | none" [none]
shadow ="0,0,0 - 255,255,255"
textposition ="0,0 - N,N"

8. SHIELDSYMBOL
type ="interstate | usroad | rect | oval"
font ="Any system font" [Arial]
fontcolor ="0,0,0 - 255,255,255" [0,0,0]
fontsize ="1 - NNN" [12]
fontstyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
labelmode ="full | numericonly" [numericonly]
minsize ="1 - NNN" [1]
shadow ="0,0,0 - 255,255,255"

12. TEXTMARKERSYMBOL
angle ="0.0 - 360.0" [0]
blockout ="0,0,0 - 255,255,255"
font ="Any system font" [Arial]
fontcolor ="0,0,0 - 255,255,255" [0,0,0]
fontsize ="1 - NNN" [10]
fontstyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
glowing ="0,0,0 - 255,255,255"
halignment ="left | center | right" [right]
interval ="0 - NNN" [0]
outline ="0,0,0 - 255,255,255"
overlap ="true | false" [true]
printmode ="titlecaps | allupper | alllower | none" [none]
valignment ="top | center | bottom" [top]

14. TRUETYPEMARKERSYMBOL
character ="32 - 255"
angle ="0.0 - 360.0" [0]
anglefield ="0.0 - 360.0" [0]
font ="Any system font" [Arial]
fontcolor ="0,0,0 - 255,255,255" [0,0,0]
fontsize ="1 - NNN" [12]
fontstyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
glowing ="0,0,0 - 255,255,255"
outline ="0,0,0 - 255,255,255"
overlap ="true | false" [true]
rotatemethod ="geographic | arithmetic | mod_arithmetic" [mod_arithmetic]
shadow ="0,0,0 - 255,255,255"
usecentroid ="true | false" [false]

*/

   var $Angle; // "0.0 - 360.0" [0]
   var $Anglefield; // "0.0 - 360.0" [0]
   var $Antialiasing; // "true | false" [false]
   var $Backcolor; // "0,0,0 - 255,255,255" [255,255,255]
   var $Blockout; // "0,0,0 - 255,255,255"
   var $Boundary; // "true | false" [false]  [true]
   var $Boundarycaptype; // "butt | round | square" [butt]
   var $Boundarycolor; // "0,0,0 - 255,255,255" [0,0,0]
   var $Boundaryjointype; // "round | miter | bevel" [round]
   var $Boundarytransparency; // "0.0 - 1.0" [1]
   var $Boundarytype; // "solid | dash | dot | dash_dot | dash_dot_dot" [solid]
   var $Boundarywidth; // "1 - NNN" [1]
   var $Captype; // "butt | round | square" [butt]
   var $Character; // "32 - 255"
   var $Color; // "0,0,0 - 255,255,255" [0,0,0]
   var $Fillcolor; // "0,0,0 - 255,255,255" [0,200,0]
   var $Fillinterval; // "2 - NNN" [6]
   var $Filltransparency; // "0.0 - 1.0" [1]
   var $Filltype; // "solid | bdiagonal | fdiagonal | cross | diagcross | horizontal | vertical | gray | lightgray | darkgray" [solid]
   var $Finishcolor; // "0,0,0 - 255,255,255" [0,255,0]
   var $Font; // "Any system font" [Arial]
   var $Fontcolor; // "0,0,0 - 255,255,255" [0,0,0]
   var $Fontsize; // "1 - NNN" [12] [10]
   var $Fontstyle; // "regular | bold | italic | underline | outline | bolditalic" [regular]
   var $Glowing; // "0,0,0 - 255,255,255"
   var $Halignment; // "left | center | right" [right]
   var $Hotspot; // "0,0 - N,N" [centered]
   var $Image; // "path to image file"
   var $Interval; // "0 - NNN" [10] [8] [0]
   var $Jointype; // "round | miter | bevel" [round]
   var $Linethickness; // "1 - NNN" [1]
   var $Labelmode; // "full | numericonly" [numericonly]
   var $Maxsize; // "1 - NNN"
   var $Maxvalue; // "1 - NNN"
   var $Minsize; // "1 - NNN"  [1]
   var $Minvalue; // "1 - NNN"
   var $Mode; // "pie | bar" [pie]
   var $Outline; // "0,0,0 - 255,255,255"
   var $Overlap; // "true | false" [true] 
   var $Printmode; // "titlecaps | allupper | alllower | none" [none]
   var $Rotatemethod; // "geographic | arithmetic | mod_arithmetic" [mod_arithmetic]
   var $Shadow; // "0,0,0 - 255,255,255"
   var $Size; // "1 - NNN"  //  "1,1 - N,N"
   var $Sizefield; // "string" 
   var $Startcolor; // "0,0,0 - 255,255,255" [255,0,0]
   var $Textposition; // "0,0 - N,N" 
   var $Tickthickness; // "1 - NNN" [1]
   var $Transparency; // "0.0 - 1.0" [1.0]
   var $Type; // "bdiagonal | fdiagonal | horizontal | vertical" [bdiagonal] / "foreground | background" [foreground] // "interstate | usroad | rect | oval"  // "solid | dash | dot | dash_dot | dash_dot_dot" [solid] // "circle | triangle | square | cross | star" [circle] 
   var $Url; // "url string"
   var $Usecentroid; // "true | false" [false]
   var $Valignment; // "top | center | bottom" [top]
   var $Width; // "1 - NNN" [6] [3] //  "0 - NNN" [0]

   var $Symbol; //the type fo symbol

   function aimsSymbol($p0, $p1=0, $p2=0 ){
      switch($p0){
      case 5:
         $Image = $p1;
         $Url = $p2;
         break;
      case 6:
         $Image = $p1;
         $Url = $p2;
         break;
      case 7:
         $Image = $p1;
         $Url = $p2;
         break;
      case 8:
         $Type = $p1;
      case 14: 
         $Character = $p1;
         break;
      }
      $this->Symbol=$p0;
      return 1;
   }

   function returnTag($parent){
      switch ($this->Symbol) {
      case 1:
         $tagStr='<CALLOUTMARKERSYMBOL ';
         if ($this->Antialising) $tagStr.='antialiasing = "'.$this->Antialiasing.'" ';
         if ($this->Backcolor) $tagStr.='backcolor = "'.$this->Backcolor.'" ';
         if ($this->Boundarycolor) $tagStr.='boundarycolor ="'.$this->Boundarycolor.'" ';
         if ($this->Font) $tagStr.='font ="'.$this->Font.'" ';
         if ($this->Fontcolor) $tagStr.='fontcolor ="'.$this->Fontcolor.'" ';
         if ($this->Fontsize) $tagStr.='fontsize ="'.$this->Fontsize.'" ';
         if ($this->Fontstyle) $tagStr.='fontstyle ="'.$this->Fontstyle.'" ';
         if ($this->Glowing) $tagStr.='glowing ="'.$this->Glowing.'" ';
         if ($this->Interval) $tagStr.='interval ="'.$this->Interval.'" ';
         if ($this->Outline) $tagStr.='outline ="'.$this->Outline.'" '; 
         if ($this->Shadow) $tagStr.='shadow ="'.$this->Shadow.'" ';
         if ($this->Transparency) $tagStr.='transparency ="'.$this->Transparency.'" ';
         return $tagStr.'</CALLOUTMARKERSYMBOL>';
         break;
      case 2:
         $tagStr='<CHARTSYMBOL ';
         if ($this->Antialising) $tagStr.='antialiasing = "'.$this->Antialiasing.'" ';
         if ($this->Maxsize) $tagStr.='maxsize ="'.$this->Maxsize.'" ';
         if ($this->Maxvalue) $tagStr.='maxvalue ="'.$this->Maxvalue.'" ';
         if ($this->Minsize) $tagStr.='minsize ="'.$this->Minsize.'" ';
         if ($this->Minvalue) $tagStr.='minvalue ="'.$this->Minvalue.'" ';
         if ($this->Mode) $tagStr.='mode ="'.$this->Mode.'" ';
         if ($this->Outline) $tagStr.='outline ="'.$this->Outline.'" ';
         if ($this->Shadow) $tagStr.='shadow ="'.$this->Shadow.'" ';
         if ($this->Size) $tagStr.='size ="'.$this->Size.'" ';
         if ($this->sizefield) $tagStr.='sizefield ="'.$this->sizefield.'" ';
         if ($this->Transparency) $tagStr.='transparency ="'.$this->Transparency.'" ';
         return $tagStr.'</CHARTSYMBOL>';
      case 3:
         $tagStr='<GRADIENTFILLSYMBOL ';
         if ($this->Antialising) $tagStr.='antialiasing ="'.$this->Antialiasing.'" ';
         if ($this-Finishcolor) $tagStr.='finishcolor ="'.$this->Finishcolor.'" ';
         if ($this->Overlap) $tagStr.='overlap ="'.$this->Overlap.'" ';
         if ($this->Startcolor) $tagStr.='startcolor ="'.$this->Startcolor.'" ';
         if ($this->Transparency) $tagStr.='transparency ="'.$this->Transparency.'" ';
         if ($this->Type) $tagStr.='type ="'.$this->Type.'" ';
      return $tagStr.'</GRADIENTFILLSYMBOL>';
      case 4:
         $tagStr='<HASHLINESYMBOL ';
         if ($this->Antialising) $tagStr.='antialiasing ="'.$this->Antialising.'" ';
         if ($this->Colour) $tagStr.='color ="'.$this->Colour.'" ';
         if ($this->Interval) $tagStr.='interval ="'.$this->Interval.'" ';
         if ($this->Linethickness) $tagStr.='linethickness ="'.$this->Linethickness.'" ';
         if ($this->Overlap) $tagStr.='overlap ="'.$this->Overlap.'" ';
         if ($this->Tickthickness) $tagStr.='tickthickness ="'.$this->Tickthickness.'" ';
         if ($this->Transparency) $tagStr.='transparency ="'.$this->Transparency.'" ';
         if ($this->Type) $tagStr.='type ="'.$this->Type.'" ';
         if ($this->Width) $tagStr.='width ="'.$this->Width.'" ';
         return $tagStr.'</HASHLINESYMBOL>';
      case 5:
         $tagStr='<RASTERFILLSYMBOL ';
         if ($this->Image) $tagStr.='image ="'.$this->Image.'" ';
         if ($this->Url) $tagStr.='url ="'.$this->Url.'" ';
         if ($this->Antialising) $tagStr.='antialiasing ="'.$this->Antialiasing.'" '; 
         if ($this->Overlap) $tagStr.='overlap ="'.$this->Overlap.'" ';
         if ($this->Transparency) $tagStr.='transparency ="'.$this->Transparency.'" ';
         return $tagStr.'</HASHLINESYMBOL>';
      case 6:
         $tagStr='<RASTERMARKERSYMBOL ';
         if ($this->Image) $tagStr.='image ="'.$this->Image.'" ';
         if ($this->Url) $tagStr.='url ="'.$this->Url.'" ';
         if ($this->Antialising) $tagStr.='antialiasing ="'.$this->Antialiasing.'" ';
         if ($this->Hotspot) $tagStr.='hotspot ="'.$this->Hotspot.'" ';
         if ($this->Overlap) $tagStr.='overlap ="'.$this->Overlap.'" ';
         if ($this->Shadow) $tagStr.='shadow ="'.$this->Shadow.'" ';
         if ($this->Size) $tagStr.='size ="'.$this->Size.'" ';
         if ($this->Transparency) $tagStr.='transparency ="'.$this->Transparency.'" '; 
         if ($this->Uscentroid) $tagStr.='usecentroid ="'.$this->Uscentroid.'" ';
         return $tagStr.'</RASTERMARKERSYMBOL>';
      case 7:
         $tagStr='<RASTERSHIELDSYMBOL ';
         if ($this->Image) $tagStr.='image ="'.$this->Image.'" ';
         if ($this->Url) $tagStr.='url ="'.$this->Url.'" ';
         if ($this->Antialising) $tagStr.='antialiasing ="'.$this->Antialiasing.'" ';
         if ($this->Boundary) $tagStr.='boundary ="'.$this->Boundary.'" ';
         if ($this->Font) $tagStr.='font ="'.$this->Font.'" ';
         if ($this->Fontcolor) $tagStr.='fontcolor ="'.$this->Fontcolor.'" ';
         if ($this->Fontsize) $tagStr.='fontsize ="'.$this->Fontsize.'" ';
         if ($this->Fontstyle) $tagStr.='fontstyle ="'.$this->Fontstyle.'" ';
         if ($this->Labelmode) $tagStr.='labelmode ="'.$this->Labelmode.'" ';
         if ($this->Printmode) $tagStr.='printmode ="'.$this->Printmode.'" ';
         if ($this->Shadow) $tagStr.='shadow ="'.$this->Shadow.'" ';
         if ($this->Textposition) $tagStr.='textposition ="'.$this->Textposition.'" ';
         if ($this->Transparency) $tagStr.='transparency ="'.$this->Transparency.'" ';
         return $tagStr.'</RASTERSHIELDSYMBOL>';
      case 8:
         $tagStr='<SHIELDSYMBOL ';
         if ($this->Type) $tagStr.='type ="'.$this->Type.'" ';
         if ($this->Antialising) $tagStr.='antialiasing ="'.$this->Antialiasing.'" ';
         if ($this->Font) $tagStr.='font ="'.$this->Font.'" ';
         if ($this->Fontcolor) $tagStr.='fontcolor ="'.$this->Fontcolor.'" ';
         if ($this->Fontsize) $tagStr.='fontsize ="'.$this->Fontsize.'" ';
         if ($this->Fontstyle) $tagStr.='fontstyle ="'.$this->Fontstyle.'" ';
         if ($this->Labelmode) $tagStr.='labelmode ="'.$this->Labelmode.'" ';
         if ($this->Minsize) $tagStr.='minsize ="'.$this->Minsize.'" ';
         if ($this->shadow) $tagStr.='shadow ="'.$this->shadow.'" ';
         return $tagStr.'</SHIELDSYMBOL>';
      case 9:
         $tagStr='<SIMPLELINESYMBOL ';
         if ($this->Antialising) $tagStr.='antialiasing ="'.$this->Antialiasing.'" ';
         if ($this->Captype) $tagStr.='captype ="'.$this->Captype.'" ';
         if ($this->Color) $tagStr.='color ="'.$this->Color.'" ';
         if ($this->Jointype) $tagStr.='jointype ="'.$this->Jointype.'" ';
         if ($this->Overlap) $tagStr.='overlap ="'.$this->Overlap.'" ';
         if ($this->Transparency) $tagStr.='transparency ="'.$this->Transparency.'" ';
         if ($this->Type) $tagStr.='type ="'.$this->Type.'" ';
         if ($this->Width) $tagStr.='width ="'.$this->Width.'" ';
			return $tagStr.' />';
      case 10:
         $tagStr='<SIMPLEMARKERSYMBOL ';
         if ($this->Antialising) $tagStr.='antialiasing ="'.$this->Antialiasing.'" ';
         if ($this->Color) $tagStr.='color ="'.$this->Color.'" ';
         if ($this->Outline) $tagStr.='outline ="'.$this->Outline.'" ';
         if ($this->Overlap) $tagStr.='overlap ="'.$this->Overlap.'" ';
         if ($this->shadow) $tagStr.='shadow ="'.$this->shadow.'" ';
         if ($this->Transparency) $tagStr.='transparency ="'.$this->Transparency.'" ';
         if ($this->Type) $tagStr.='type ="'.$this->Type.'" ';
         if ($this->Usecentroid) $tagStr.='usecentroid ="'.$this->Usecentroid.'" ';
         if ($this->Width) $tagStr.='width ="'.$this->Width.'" ';
         return $tagStr.'</SIMPLEMARKERSYMBOL>';
   case 12:
   $tagStr='<TEXTMARKERSYMBOL ';
   if ($this->Angle) $tagStr.='angle ="'.$this->Angle.'" ';
   if ($this->Antialiasing) $tagStr.='antialiasing ="'.$this->Antialiasing.'" ';
   if ($this->Blockout) $tagStr.='blockout ="'.$this->Blockout.'" ';
   if ($this->Font) $tagStr.='font ="'.$this->Font.'" ';
   if ($this->Fontcolor) $tagStr.='fontcolor ="'.$this->Fontcolor.'" ';
   if ($this->Fontsize) $tagStr.='fontsize ="'.$this->Fontsize.'" ';
   if ($this->Fontstyle) $tagStr.='fontstyle ="'.$this->Fontstyle.'" ';
   if ($this->Glowing) $tagStr.='glowing ="'.$this->Glowing.'" ';
   if ($this->Halignment) $tagStr.='halignment ="'.$this->Halignment.'" ';
   if ($this->Interval) $tagStr.='interval ="'.$this->Interval.'" ';
   if ($this->Outline) $tagStr.='outline ="'.$this->Outline.'" ';
   if ($this->Overlap) $tagStr.='overlap ="'.$this->Overlap.'" ';
   if ($this->Printmode) $tagStr.='printmode ="'.$this->Printmode.'" ';
   if ($this->Shadow) $tagStr.='shadow ="'.$this->Shadow.'" ';   // undocumented attribute
   if ($this->Transparency) $tagStr.='transparency ="'.$this->Transparency.'" ';
   if ($this->Valignment) $tagStr.='valignment ="'.$this->Valignment.'" ';
   return $tagStr.'/>';
       case 14:
         $tagStr='<TRUETYPEMARKERSYMBOL ';
         if ($this->Character) $tagStr.='character ="'.$this->Character.'" ';
         if ($this->Angle) $tagStr.='angle ="'.$this->Angle.'" ';
         if ($this->Anglefield) $tagStr.='anglefield ="'.$this->Anglefield.'" ';
         if ($this->Antialiasing) $tagStr.='antialiasing ="'.$this->Antialiasing.'" ';
         if ($this->Font) $tagStr.='font ="'.$this->Font.'" ';
         if ($this->Fontcolor) $tagStr.='fontcolor ="'.$this->Fontcolor.'" ';
         if ($this->Fontsize) $tagStr.='fontsize ="'.$this->Fontsize.'" ';
         if ($this->Fontstyle) $tagStr.='fontstyle ="'.$this->Fontstyle.'" ';
         if ($this->Glowing) $tagStr.='glowing ="'.$this->Glowing.'" ';
         if ($this->Outline) $tagStr.='outline ="'.$this->Outline.'" ';
         if ($this->Overlap) $tagStr.='overlap ="'.$this->Overlap.'" ';
         if ($this->Rotatemethod) $tagStr.='rotatemethod ="'.$this->Rotatemethod.'" ';
         if ($this->Shadow) $tagStr.='shadow ="'.$this->Shadow.'" ';
         if ($this->Transparency) $tagStr.='transparency ="'.$this->Transparency.'" ';
         if ($this->Usecentroid) $tagStr.='usecentroid ="'.$this->Usecentroid.'" ';
         return $tagStr.'</TRUETYPEMARKERSYMBOL>';
      }
   }
}

?>
Return current item: PhpArcIMS