/** * Sets the map zoom control. * * Available prototypes: * - function setZoomControl(Ivory\GoogleMap\Controls\ZoomControl $zoomControl = null) * - function setZoomControl(string $controlPosition, string $zoomControlStyle) * * @throws \Ivory\GoogleMap\Exception\MapException If the zoom control is not valid (prototypes). */ public function setZoomControl() { $args = func_get_args(); if (isset($args[0]) && $args[0] instanceof ZoomControl) { $this->zoomControl = $args[0]; $this->mapOptions['zoomControl'] = true; } elseif (isset($args[0]) && is_string($args[0]) && (isset($args[1]) && is_string($args[1]))) { if ($this->zoomControl === null) { $this->zoomControl = new ZoomControl(); } $this->zoomControl->setControlPosition($args[0]); $this->zoomControl->setZoomControlStyle($args[1]); $this->mapOptions['zoomControl'] = true; } elseif (!isset($args[0])) { $this->zoomControl = null; if (isset($this->mapOptions['zoomControl'])) { unset($this->mapOptions['zoomControl']); } } else { throw MapException::invalidZoomControl(); } }
/** * Renders a zoom control. * * @param \Ivory\GoogleMap\Controls\ZoomControl $zoomControl The zoom control. * * @return string The JS output. */ public function render(ZoomControl $zoomControl) { return $this->jsonBuilder->reset()->setValue('[position]', $this->controlPositionHelper->render($zoomControl->getControlPosition()), false)->setValue('[style]', $this->zoomControlStyleHelper->render($zoomControl->getZoomControlStyle()), false)->build(); }
/** * @expectedException \Ivory\GoogleMap\Exception\ControlException * @expectedExceptionMessage The zoom control style of a zoom control can only be : default, large, small. */ public function testZoomControlStyleWithInvalidValue() { $this->zoomControl->setZoomControlStyle('foo'); }