/**
  * Renders the info window open flag.
  *
  * @param \Ivory\GoogleMap\Overlays\InfoWindow $infoWindow The info window.
  * @param \Ivory\GoogleMap\Map                 $map        The map.
  * @param \Ivory\GoogleMap\Overlays\Marker     $marker     The marker.
  *
  * @return string The JS output.
  */
 public function renderOpen(InfoWindow $infoWindow, Map $map, Marker $marker = null)
 {
     if ($marker !== null) {
         return sprintf('%s.open(%s, %s);' . PHP_EOL, $infoWindow->getJavascriptVariable(), $map->getJavascriptVariable(), $marker->getJavascriptVariable());
     }
     return sprintf('%s.open(%s);' . PHP_EOL, $infoWindow->getJavascriptVariable(), $map->getJavascriptVariable());
 }
Exemplo n.º 2
0
 /**
  * Renders a marker.
  *
  * @param Ivory\GoogleMap\Overlays\Marker $marker The marker.
  * @param Ivory\GoogleMap\Map             $map    The map.
  *
  * @return string The JS output.
  */
 public function render(Marker $marker, Map $map = null)
 {
     $this->jsonBuilder->reset()->setValue('[position]', $marker->getPosition()->getJavascriptVariable(), false);
     if ($map !== null) {
         $this->jsonBuilder->setValue('[map]', $map->getJavascriptVariable(), false);
     }
     if ($marker->hasAnimation()) {
         $this->jsonBuilder->setValue('[animation]', $this->animationHelper->render($marker->getAnimation()), false);
     }
     if ($marker->hasIcon()) {
         $this->jsonBuilder->setValue('[icon]', $marker->getIcon()->getJavascriptVariable(), false);
     }
     if ($marker->hasShadow()) {
         $this->jsonBuilder->setValue('[shadow]', $marker->getShadow()->getJavascriptVariable(), false);
     }
     if ($marker->hasShape()) {
         $this->jsonBuilder->setValue('[shape]', $marker->getShape()->getJavascriptVariable(), false);
     }
     $this->jsonBuilder->setValues($marker->getOptions());
     return sprintf('%s = new google.maps.Marker(%s);' . PHP_EOL, $marker->getJavascriptVariable(), $this->jsonBuilder->build());
 }
 /**
  * Renders a marker with the js map container.
  *
  * @param \Ivory\GoogleMap\Overlays\Marker $marker The marker.
  * @param \Ivory\GoogleMap\Map             $map    The map.
  *
  * @return string The JS output.
  */
 protected function renderMarker(Marker $marker, Map $map)
 {
     return sprintf('%s.markers.%s = %s', $this->getJsContainerName($map), $marker->getJavascriptVariable(), $this->markerHelper->render($marker));
 }