protected function setMarkerOptions($markerPosition, $markerContent) { $position = explode(',', $markerPosition); $marker = new Marker(); $marker->setPrefixJavascriptVariable('londa_marker_'); $marker->setPosition($position[0], $position[1], true); $marker->setAnimation(Animation::DROP); $marker->setOptions(array('clickable' => true, 'flat' => true)); $infoWindow = $this->getGoogleMapMarkerInfo($markerContent); $marker->setInfoWindow($infoWindow); return $marker; }
public function generateAction($address, $info_bulle = '', $width = '100%', $height = '100%') { $geocoder = new \Geocoder\Geocoder(); $adapter = new \Geocoder\HttpAdapter\CurlHttpAdapter(); $chain = new \Geocoder\Provider\ChainProvider(array(new \Geocoder\Provider\FreeGeoIpProvider($adapter), new \Geocoder\Provider\HostIpProvider($adapter), new \Geocoder\Provider\GoogleMapsProvider($adapter, 'fr_FR', 'France', true), new \Geocoder\Provider\BingMapsProvider($adapter, 'AIzaSyBZ3sNuoMPrXGCNbhnEbGmfzGxOohhEX4E'))); $geocoder->registerProvider($chain); $address = urldecode($address); $info_bulle = urldecode($info_bulle); // Récupération des coordonnées du programme try { $coordonnees = $geocoder->geocode($address); } catch (ChainNoResultException $e) { try { $coordonnees = $geocoder->geocode('France'); } catch (ChainNoResultException $e) { return false; } } $info_content = '<div style="min-width:150px;text-align:center;">' . $info_bulle . '</div>'; $info_window = new InfoWindow(); $info_window->setAutoOpen(true); $info_window->setOpen(true); $info_window->setContent($info_content); $marker = new Marker(); $marker->setPosition($coordonnees->getLatitude(), $coordonnees->getLongitude(), true); $marker->setAnimation('drop'); $marker->setOption('clickable', true); $marker->setOption('flat', true); if ($info_bulle) { $marker->setInfoWindow($info_window); } // Création de la map $map = new Map(); $map->setPrefixJavascriptVariable('map_'); $map->setHtmlContainerId('map_canvas'); $map->setAsync(true); $map->setAutoZoom(false); $map->setCenter($coordonnees->getLatitude(), $coordonnees->getLongitude(), true); $map->setMapOption('zoom', 12); $map->setMapOption('mapTypeId', MapTypeId::ROADMAP); $map->setMapOption('disableDefaultUI', false); $map->setMapOption('disableDoubleClickZoom', false); $map->setStylesheetOption('width', $width); $map->setStylesheetOption('height', $height); $map->setLanguage('fr'); $map->addMarker($marker); return $map; }
/** * Render map with marker * * @param Coordinate $point * @param string $info * @param bool $async * * @return mixed * @throws \Ivory\GoogleMap\Exception\AssetException * @throws \Ivory\GoogleMap\Exception\MapException * @throws \Ivory\GoogleMap\Exception\OverlayException */ public function renderMapWithMarker(Coordinate $point, string $info = '', bool $async = true) : array { $marker = new Marker(); $infoWindow = new InfoWindow(); $marker->setPrefixJavascriptVariable('marker_'); $marker->setPosition($point); $marker->setAnimation(Animation::DROP); $marker->setOption('clickable', true); $marker->setOption('flat', true); if ($info) { $infoWindow->setPrefixJavascriptVariable('info_window_'); $infoWindow->setContent("<p>{$info}</p>"); $infoWindow->setOpen(false); $infoWindow->setAutoOpen(true); $marker->setInfoWindow($infoWindow); } $map = $this->createEmptyMap($point, $async); $map->setMapOption('zoom', 13); $map->addMarker($marker); return $this->renderMap($map); }
public function testRenderWitoutMap() { $marker = new Marker(); $marker->setJavascriptVariable('marker'); $marker->setAnimation(Animation::BOUNCE); $marker->setPosition(1.1, 2.1, true); $marker->getPosition()->setJavascriptVariable('position'); $marker->setIcon('url'); $marker->getIcon()->setJavascriptVariable('icon'); $marker->setShadow('url'); $marker->getShadow()->setJavascriptVariable('shadow'); $marker->setShape('poly', array(1, 2, 3, 4)); $marker->getShape()->setJavascriptVariable('shape'); $expected = 'marker = new google.maps.Marker({' . '"position":position,' . '"animation":google.maps.Animation.BOUNCE,' . '"icon":icon,' . '"shadow":shadow,' . '"shape":shape' . '});' . PHP_EOL; $this->assertSame($expected, $this->markerHelper->render($marker)); }
/** * @expectedException \Ivory\GoogleMap\Exception\OverlayException * @expectedExceptionMessage The animation of a marker can only be : bounce, drop. */ public function testAnimationWithInvalidValue() { $this->marker->setAnimation('foo'); }