/** * {@inheritdoc} */ public function renderLibraries(Map $map) { if ($this->apiHelper->isLoaded()) { return; } $callback = null; if ($map->isAsync()) { $callback = 'load_ivory_google_map'; } $output = array(); $output[] = $this->apiHelper->render($map->getLanguage(), $this->getLibraries($map), $callback, $map->getApiKey()); $output[] = $this->markerClusterHelper->renderLibraries($map->getMarkerCluster(), $map); return implode('', $output); }
/** * Renders the autocomplete javascripts. * * @param \Ivory\GoogleMap\Places\Autocomplete $autocomplete The autocomplete. * * @throws \Ivory\GoogleMap\Exception\HelperException if the autocomplete bound does not have coordinates. * * @return string The HTML output. */ public function renderJavascripts(Autocomplete $autocomplete) { $output = array(); if (!$this->apiHelper->isLoaded() && !$autocomplete->isAsync()) { $output[] = $this->apiHelper->render($autocomplete->getLanguage(), array('places')); } $output[] = '<script type="text/javascript">' . PHP_EOL; if ($autocomplete->isAsync()) { $output[] = 'function load_ivory_google_place () {' . PHP_EOL; } if ($autocomplete->hasBound()) { if (!$autocomplete->getBound()->hasCoordinates()) { throw HelperException::invalidAutocompleteBound(); } $output[] = $this->coordinateHelper->render($autocomplete->getBound()->getSouthWest()); $output[] = $this->coordinateHelper->render($autocomplete->getBound()->getNorthEast()); $output[] = $this->boundHelper->render($autocomplete->getBound()); } $output[] = $this->renderAutocomplete($autocomplete); if ($autocomplete->isAsync()) { $output[] = '}' . PHP_EOL; } $output[] = '</script>' . PHP_EOL; if (!$this->apiHelper->isLoaded() && $autocomplete->isAsync()) { $output[] = $this->apiHelper->render($autocomplete->getLanguage(), array('places'), 'load_ivory_google_place'); } return implode('', $output); }
public function testRenderWithKey() { $expected = <<<EOF <script type="text/javascript"> function load_ivory_google_map_api () { google.load("maps", "3", {"other_params":"language=en&key=ABQIAAAApsu_yVyPoWjn3yp6vDxlSg"}); }; </script> <script type="text/javascript" src="//www.google.com/jsapi?callback=load_ivory_google_map_api"></script> EOF; $this->assertSame($expected, $this->apiHelper->render('en', array(), null, 'ABQIAAAApsu_yVyPoWjn3yp6vDxlSg')); }
public function testRenderWithSensor() { $expected = <<<EOF <script type="text/javascript"> function load_ivory_google_map_api () { google.load("maps", "3", {"other_params":"language=en&sensor=true"}); }; </script> <script type="text/javascript" src="//www.google.com/jsapi?callback=load_ivory_google_map_api"></script> EOF; $this->assertSame($expected, $this->apiHelper->render('en', array(), null, true)); }