/** * {@inheritdoc} */ public function buildView(FormView $view, FormInterface $form, array $options) { $this->mapBuilder->setHtmlContainerId($view->vars['id'] . '_map_canvas'); $this->mapBuilder->setAutoZoom(true); $this->mapBuilder->setMapOptions(['minZoom' => 3, 'maxZoom' => 18, 'disableDefaultUI' => true]); $this->mapBuilder->setStylesheetOptions(['width' => '100%', 'height' => '320px']); $map = $this->mapBuilder->build(); $marker = new Marker(); /** @var \Ivory\GoogleMap\Base\Coordinate $coordinate */ if (null !== ($coordinate = $form->getData())) { if (null !== $coordinate->getLatitude() && null !== $coordinate->getLongitude()) { $marker->setPosition($coordinate); } } $map->addMarker($marker); $config = ['map_var' => $map->getJavascriptVariable(), 'marker_var' => $marker->getJavascriptVariable()]; $view->vars['map'] = $map; $view->vars['config'] = $config; }
/** * Crée un objet Market * @param $fiche, la fiche pour laquelle il faut créer un marker * @return Marker * @throws \Ivory\GoogleMap\Exception\OverlayException */ public function createMarker($fiche) { $marker = new Marker(); $marker->setPosition($fiche->getLatitude(), $fiche->getLongitude(), true); $marker->setAnimation(Animation::DROP); return $marker; }