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;
	}