/** * Sets the marker shadow. * * Available prototypes: * - function setShadow(Ivory\GoogleMap\Overlays\MarkerImage $markerImage = null) * - function setShadow(string $url = null) * * @throws \Ivory\GoogleMap\Exception\OverlayException If the marker shadow is not valid. */ public function setShadow() { $args = func_get_args(); if (isset($args[0]) && $args[0] instanceof MarkerImage) { if ($args[0]->getUrl() === null) { throw OverlayException::invalidMarkerShadowUrl(); } $this->shadow = $args[0]; } elseif (isset($args[0]) && is_string($args[0])) { if ($this->shadow === null) { $this->shadow = new MarkerImage(); } $this->shadow->setUrl($args[0]); } elseif (!isset($args[0])) { $this->shadow = null; } else { throw OverlayException::invalidMarkerShadow(); } }
public function testRender() { $markerImage = new MarkerImage(); $markerImage->setJavascriptVariable('markerImage'); $markerImage->setUrl('url'); $markerImage->setSize(1, 2); $markerImage->getSize()->setJavascriptVariable('size'); $markerImage->setOrigin(3, 4); $markerImage->getOrigin()->setJavascriptVariable('origin'); $markerImage->setAnchor(5, 6); $markerImage->getAnchor()->setJavascriptVariable('anchor'); $markerImage->setScaledSize(7, 8); $markerImage->getScaledSize()->setJavascriptVariable('scaled_size'); $expected = <<<EOF markerImage = new google.maps.MarkerImage("url", size, origin, anchor, scaled_size); EOF; $this->assertSame($expected, $this->markerImageHelper->render($markerImage)); }
/** * @expectedException \Ivory\GoogleMap\Exception\OverlayException * @expectedExceptionMessage The size setter arguments is invalid. * The available prototypes are : * - function setSize(Ivory\GoogleMap\Base\Size $scaledSize = null) * - function setSize(double $width, double $height, string $widthUnit = null, string $heightUnit = null) */ public function testSizeWithInvalidValue() { $this->markerImage->setSize('foo'); }
/** * Renders a marker image. * * @param \Ivory\GoogleMap\Overlays\MarkerImage $markerImage The marker image. * * @return string The JS output. */ public function render(MarkerImage $markerImage) { return sprintf('%s = new google.maps.MarkerImage("%s", %s, %s, %s, %s);' . PHP_EOL, $markerImage->getJavascriptVariable(), $markerImage->getUrl(), $markerImage->hasSize() ? $markerImage->getSize()->getJavascriptVariable() : 'null', $markerImage->hasOrigin() ? $markerImage->getOrigin()->getJavascriptVariable() : 'null', $markerImage->hasAnchor() ? $markerImage->getAnchor()->getJavascriptVariable() : 'null', $markerImage->hasScaledSize() ? $markerImage->getScaledSize()->getJavascriptVariable() : 'null'); }