/** * Renders the map javascript markers * * @param Ivory\GoogleMapBundle\Model\Map $map * @return string HTML output */ public function renderMarkers(Map $map) { $html = array(); foreach ($map->getMarkers() as $marker) { $html[] = $this->markerHelper->render($marker, $map); if ($marker->hasInfoWindow() && $marker->getInfoWindow()->isAutoOpen()) { $event = new Event(); $event->setInstance($marker->getJavascriptVariable()); $event->setEventName($marker->getInfoWindow()->getOpenEvent()); $event->setHandle(sprintf('function(){for(var info_window in closable_info_windows){closable_info_windows[info_window].close();}%s}', str_replace(PHP_EOL, '', $this->infoWindowHelper->renderOpen($marker->getInfoWindow(), $map, $marker)))); $map->getEventManager()->addEvent($event); } } return implode('', $html); }