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;
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 /**
  * 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));
 }
Exemplo n.º 5
0
 /**
  * @expectedException \Ivory\GoogleMap\Exception\OverlayException
  * @expectedExceptionMessage The animation of a marker can only be : bounce, drop.
  */
 public function testAnimationWithInvalidValue()
 {
     $this->marker->setAnimation('foo');
 }