/** * Checks the render method */ public function testRender() { $mapTest = new Map(); $rectangleTest = new Rectangle(); $boundTest = new Bound(); $boundTest->setSouthWest(new Coordinate(-1.1, -2.1, true)); $boundTest->setNorthEast(new Coordinate(1.1, 2.1, true)); $rectangleTest->setBound($boundTest); $this->assertEquals(self::$rectangleHelper->render($rectangleTest, $mapTest), 'var ' . $rectangleTest->getBound()->getJavascriptVariable() . ' = new google.maps.LatLngBounds(new google.maps.LatLng(-1.1, -2.1, true), new google.maps.LatLng(1.1, 2.1, true));' . PHP_EOL . 'var ' . $rectangleTest->getJavascriptVariable() . ' = new google.maps.Rectangle({"map":' . $mapTest->getJavascriptVariable() . ',"bounds":' . $rectangleTest->getBound()->getJavascriptVariable() . '});' . PHP_EOL); $rectangleTest->setOptions(array('option1' => 'value1', 'option2' => 'value2')); $this->assertEquals(self::$rectangleHelper->render($rectangleTest, $mapTest), 'var ' . $rectangleTest->getBound()->getJavascriptVariable() . ' = new google.maps.LatLngBounds(new google.maps.LatLng(-1.1, -2.1, true), new google.maps.LatLng(1.1, 2.1, true));' . PHP_EOL . 'var ' . $rectangleTest->getJavascriptVariable() . ' = new google.maps.Rectangle({"map":' . $mapTest->getJavascriptVariable() . ',"bounds":' . $rectangleTest->getBound()->getJavascriptVariable() . ',"option1":"value1","option2":"value2"});' . PHP_EOL); }
/** * Renders the rectangle * * @param Ivory\GoogleMapBundle\Model\Overlays\Rectangle $rectangle * @param Ivory\GoogleMapBundle\Model\Map $map * @return string HTML output */ public function render(Rectangle $rectangle, Map $map) { $rectangleOptions = $rectangle->getOptions(); $rectangleJSONOptions = sprintf('{"map":%s,"bounds":%s', $map->getJavascriptVariable(), $rectangle->getBound()->getJavascriptVariable()); if (!empty($rectangleOptions)) { $rectangleJSONOptions .= ',' . substr(json_encode($rectangleOptions), 1); } else { $rectangleJSONOptions .= '}'; } $html = array(); $html[] = $this->boundHelper->render($rectangle->getBound()); $html[] = sprintf('var %s = new google.maps.Rectangle(%s);' . PHP_EOL, $rectangle->getJavascriptVariable(), $rectangleJSONOptions); return implode('', $html); }
/** * Checks the render rectangles method */ public function testRenderRectangles() { $mapTest = new Model\Map(); $rectangleTest = new Overlays\Rectangle(); $rectangleTest->getBound()->setSouthWest(new Base\Coordinate(-1.1, -2.1, true)); $rectangleTest->getBound()->setNorthEast(new Base\Coordinate(1.1, 2.1, true)); $mapTest->addRectangle($rectangleTest); $this->assertEquals(self::$mapHelper->renderRectangles($mapTest), 'var ' . $rectangleTest->getBound()->getJavascriptVariable() . ' = new google.maps.LatLngBounds(new google.maps.LatLng(-1.1, -2.1, true), new google.maps.LatLng(1.1, 2.1, true));' . PHP_EOL . 'var ' . $rectangleTest->getJavascriptVariable() . ' = new google.maps.Rectangle({"map":' . $mapTest->getJavascriptVariable() . ',"bounds":' . $rectangleTest->getBound()->getJavascriptVariable() . '});' . PHP_EOL); }
/** * Create a rectangle */ public function __construct() { parent::__construct(); }