public function iconSet($color, $char = null, $size = 'm') {
		$colors = ['red', 'green', 'yellow', 'blue', 'purple', 'white', 'black'];
		if (!in_array($color, $colors)) {
			$color = 'red';
		}

		if (!empty($this->_runtimeConfig['localImages'])) {
			$this->setIcons['color'] = $this->_runtimeConfig['localImages'] . 'marker%s.png';
			$this->setIcons['alpha'] = $this->_runtimeConfig['localImages'] . 'marker%s%s.png';
			$this->setIcons['numeric'] = $this->_runtimeConfig['localImages'] . '%s%s.png';
			$this->setIcons['special'] = $this->_runtimeConfig['localImages'] . '%s.png';
		}

		if (!empty($char)) {
			if ($color === 'red') {
				$color = '';
			} else {
				$color = '_' . $color;
			}
			$url = sprintf($this->setIcons['alpha'], $color, $char);
		} else {
			if ($color === 'red') {
				$color = '';
			} else {
				$color = '_' . $color;
			}
			$url = sprintf($this->setIcons['color'], $color);
		}

		/*
        var iconImage = new google.maps.MarkerImage('images/' + images[0] + ' .png',
            new google.maps.Size(iconData[images[0]].width, iconData[images[0]].height),
            new google.maps.Point(0,0),
            new google.maps.Point(0, 32)
        );

        var iconShadow = new google.maps.MarkerImage('images/' + images[1] + ' .png',
            new google.maps.Size(iconData[images[1]].width, iconData[images[1]].height),
            new google.maps.Point(0,0),
            new google.maps.Point(0, 32)
        );

        var iconShape = {
            coord: [1, 1, 1, 32, 32, 32, 32, 1],
            type: 'poly'
        };
        */

		$shadow = 'https://www.google.com/mapfiles/shadow50.png';
		$res = [
			'url' => $url,
			'icon' => $this->icon($url, ['size' => ['width' => 20, 'height' => 34]]),
			'shadow' => $this->icon($shadow, ['size' => ['width' => 37, 'height' => 34], 'shadow' => ['width' => 10, 'height' => 34]])
		];
		return $res;
	}
public function iconSet($color, $char = null, $size = 'm') {
		$colors = ['red', 'green', 'yellow', 'blue', 'purple', 'white', 'black'];
		if (!in_array($color, $colors)) {
			$color = 'red';
		}

		if (!empty($this->_runtimeConfig['localImages'])) {
			$this->setIcons['color'] = $this->_runtimeConfig['localImages'] . 'marker%s.png';
			$this->setIcons['alpha'] = $this->_runtimeConfig['localImages'] . 'marker%s%s.png';
			$this->setIcons['numeric'] = $this->_runtimeConfig['localImages'] . '%s%s.png';
			$this->setIcons['special'] = $this->_runtimeConfig['localImages'] . '%s.png';
		}

		if (!empty($char)) {
			if ($color === 'red') {
				$color = '';
			} else {
				$color = '_' . $color;
			}
			$url = sprintf($this->setIcons['alpha'], $color, $char);
		} else {
			if ($color === 'red') {
				$color = '';
			} else {
				$color = '_' . $color;
			}
			$url = sprintf($this->setIcons['color'], $color);
		}

		/*
        var iconImage = new google.maps.MarkerImage('images/' + images[0] + ' .png',
            new google.maps.Size(iconData[images[0]].width, iconData[images[0]].height),
            new google.maps.Point(0,0),
            new google.maps.Point(0, 32)
        );

        var iconShadow = new google.maps.MarkerImage('images/' + images[1] + ' .png',
            new google.maps.Size(iconData[images[1]].width, iconData[images[1]].height),
            new google.maps.Point(0,0),
            new google.maps.Point(0, 32)
        );

        var iconShape = {
            coord: [1, 1, 1, 32, 32, 32, 32, 1],
            type: 'poly'
        };
        */

		$shadow = 'https://www.google.com/mapfiles/shadow50.png';
		$res = [
			'url' => $url,
			'icon' => $this->icon($url, ['size' => ['width' => 20, 'height' => 34]]),
			'shadow' => $this->icon($shadow, ['size' => ['width' => 37, 'height' => 34], 'shadow' => ['width' => 10, 'height' => 34]])
		];
		return $res;
	}
public function iconSet ( $ color , $ char = null , $ size = 'm' ) { $ colors = [ 'red' , 'green' , 'yellow' , 'blue' , 'purple' , 'white' , 'black' ] ; if ( ! in_array ( $ color , $ colors ) ) { $ color = 'red' ; } if ( ! empty ( $ this -> _runtimeConfig [ 'localImages' ] ) ) { $ this -> setIcons [ 'color' ] = $ this -> _runtimeConfig [ 'localImages' ] . 'marker%s.png' ; $ this -> setIcons [ 'alpha' ] = $ this -> _runtimeConfig [ 'localImages' ] . 'marker%s%s.png' ; $ this -> setIcons [ 'numeric' ] = $ this -> _runtimeConfig [ 'localImages' ] . '%s%s.png' ; $ this -> setIcons [ 'special' ] = $ this -> _runtimeConfig [ 'localImages' ] . '%s.png' ; } if ( ! empty ( $ char ) ) { if ( $ color === 'red' ) { $ color = '' ; } else { $ color = '_' . $ color ; } $ url = sprintf ( $ this -> setIcons [ 'alpha' ] , $ color , $ char ) ; } else { if ( $ color === 'red' ) { $ color = '' ; } else { $ color = '_' . $ color ; } $ url = sprintf ( $ this -> setIcons [ 'color' ] , $ color ) ; } /*
        var iconImage = new google.maps.MarkerImage('images/' + images[0] + ' .png',
            new google.maps.Size(iconData[images[0]].width, iconData[images[0]].height),
            new google.maps.Point(0,0),
            new google.maps.Point(0, 32)
        );

        var iconShadow = new google.maps.MarkerImage('images/' + images[1] + ' .png',
            new google.maps.Size(iconData[images[1]].width, iconData[images[1]].height),
            new google.maps.Point(0,0),
            new google.maps.Point(0, 32)
        );

        var iconShape = {
            coord: [1, 1, 1, 32, 32, 32, 32, 1],
            type: 'poly'
        };
        */ $ shadow = 'https://www.google.com/mapfiles/shadow50.png' ; $ res = [ 'url' => $ url , 'icon' => $ this -> icon ( $ url , [ 'size' => [ 'width' => 20 , 'height' => 34 ] ] ) , 'shadow' => $ this -> icon ( $ shadow , [ 'size' => [ 'width' => 37 , 'height' => 34 ] , 'shadow' => [ 'width' => 10 , 'height' => 34 ] ] ) ] ; return $ res ; }
Get a custom icon set

@param string $color Color: green, red, purple, ... or some special ones like "home", ...
@param string|null $char Char: A...Z or 0...20/100 (defaults to none)
@param string $size Size: s, m, l (defaults to medium)
NOTE: for special ones only first parameter counts!
@return array Array(icon, shadow, shape, ...)
Get a custom icon set