/** * Checks the render method */ public function testRender() { $mapTest = new Map(); $polylineTest = new Polyline(); $polylineTest->setCoordinates(array(new Coordinate(1.1, 2.1, true), new Coordinate(3.1, 4.2, true), new Coordinate(7.4, 12.6, true))); $this->assertEquals(self::$polylineHelper->render($polylineTest, $mapTest), 'var ' . $polylineTest->getJavascriptVariable() . ' = new google.maps.Polyline({"map":' . $mapTest->getJavascriptVariable() . ',"path":[new google.maps.LatLng(1.1, 2.1, true),new google.maps.LatLng(3.1, 4.2, true),new google.maps.LatLng(7.4, 12.6, true)]});' . PHP_EOL); $polylineTest->setOptions(array('option1' => 'value1', 'option2' => 'value2')); $this->assertEquals(self::$polylineHelper->render($polylineTest, $mapTest), 'var ' . $polylineTest->getJavascriptVariable() . ' = new google.maps.Polyline({"map":' . $mapTest->getJavascriptVariable() . ',"path":[new google.maps.LatLng(1.1, 2.1, true),new google.maps.LatLng(3.1, 4.2, true),new google.maps.LatLng(7.4, 12.6, true)],"option1":"value1","option2":"value2"});' . PHP_EOL); }
/** * Renders the polyline * * @param Ivory\GoogleMapBundle\Model\Overlays\Polyline $polyline * @param Ivory\GoogleMapBundle\Model\Map $map * @return string HTML output */ public function render(Polyline $polyline, Map $map) { $polylineOptions = $polyline->getOptions(); $polylineCoordinates = array(); foreach ($polyline->getCoordinates() as $coordinate) { $polylineCoordinates[] = $this->coordinateHelper->render($coordinate); } $polylineJSONOptions = sprintf('{"map":%s,"path":%s', $map->getJavascriptVariable(), '[' . implode(',', $polylineCoordinates) . ']'); if (!empty($polylineOptions)) { $polylineJSONOptions .= ',' . substr(json_encode($polylineOptions), 1); } else { $polylineJSONOptions .= '}'; } return sprintf('var %s = new google.maps.Polyline(%s);' . PHP_EOL, $polyline->getJavascriptVariable(), $polylineJSONOptions); }
/** * Checks the render polylines method */ public function testRenderPolylines() { $mapTest = new Model\Map(); $polylineTest = new Overlays\Polyline(); $polylineTest->setCoordinates(array(new Base\Coordinate(1.1, 2.1, true), new Base\Coordinate(3.1, 4.1, true))); $mapTest->addPolyline($polylineTest); $this->assertEquals(self::$mapHelper->renderPolylines($mapTest), 'var ' . $polylineTest->getJavascriptVariable() . ' = new google.maps.Polyline({"map":' . $mapTest->getJavascriptVariable() . ',"path":[new google.maps.LatLng(1.1, 2.1, true),new google.maps.LatLng(3.1, 4.1, true)]});' . PHP_EOL); }
/** * Create a polyline */ public function __construct() { parent::__construct(); }