Exemplo n.º 1
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());
 }
Exemplo n.º 2
0
    public function testRenderJsContainerMarkerShapes()
    {
        $map = new Map();
        $map->setJavascriptVariable('map');
        $map->addMarker($marker = new Marker());
        $marker->setShape('poly', array(1, 1, 1, -1, -1, -1, -1, 1));
        $marker->getShape()->setJavascriptVariable('marker_shape');
        $expected = <<<EOF
map_container.marker_shapes.marker_shape = marker_shape = new google.maps.MarkerShape({"type":"poly","coords":[1,1,1,-1,-1,-1,-1,1]});

EOF;
        $this->assertSame($expected, $this->mapHelper->renderJsContainerMarkerShapes($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.º 4
0
 public function testShapeWithNullValue()
 {
     $this->marker->setShape('poly', array(1, 2, 3, 4));
     $this->marker->setShape(null);
     $this->assertNull($this->marker->getShape());
 }