original_string: 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;
  	}
code: 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;
  	}
code_tokens: 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 ; }
docstring: 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, ...)
docstring_tokens: Get a custom icon set