src/Overlays/Marker.php
public function setIcon()
    {
        $args = func_get_args();

        if (isset($args[0]) && ($args[0] instanceof MarkerImage)) {
            if ($args[0]->getUrl() === null) {
                throw OverlayException::invalidMarkerIconUrl();
            }

            $this->icon = $args[0];
        } elseif (isset($args[0]) && is_string($args[0])) {
            if ($this->icon === null) {
                $this->icon = new MarkerImage();
            }

            $this->icon->setUrl($args[0]);
        } elseif (!isset($args[0])) {
            $this->icon = null;
        } else {
            throw OverlayException::invalidMarkerIcon();
        }
    }
public function setIcon()
    {
        $args = func_get_args();

        if (isset($args[0]) && ($args[0] instanceof MarkerImage)) {
            if ($args[0]->getUrl() === null) {
                throw OverlayException::invalidMarkerIconUrl();
            }

            $this->icon = $args[0];
        } elseif (isset($args[0]) && is_string($args[0])) {
            if ($this->icon === null) {
                $this->icon = new MarkerImage();
            }

            $this->icon->setUrl($args[0]);
        } elseif (!isset($args[0])) {
            $this->icon = null;
        } else {
            throw OverlayException::invalidMarkerIcon();
        }
    }
Sets the marker icon.

Available prototypes:
- function setIcon(Ivory\GoogleMap\Overlays\MarkerImage $markerImage = null)
- function setIcon(string $url = null)

@throws \Ivory\GoogleMap\Exception\OverlayException If the icon is not valid.