/** * Encode a marker. * * @param Popup $popup The popup. * @param Encoder $encoder The encoder. * * @return bool */ public function encodePopup(Popup $popup, Encoder $encoder) { $source = $popup->getSource(); $buffer = sprintf('%s = L.marker(%s%s);', $encoder->encodeReference($popup), $encoder->encodeArray($popup->getOptions()), $source ? ', ' . $encoder->encodeReference($source) : ''); $buffer .= $this->encodeMethodCalls($popup->getMethodCalls(), $encoder); return $buffer; }
/** * {@inheritdoc} */ public function encode(Encoder $encoder, $flags = null) { $name = $this->encodeName(); $buffer = sprintf('%s = L.tileLayer.provider(\'' . $name . '\', %s)' . $encoder->close($flags), $encoder->encodeReference($this), $encoder->encodeValue(array('app_id' => $this->getAppId(), 'app_code' => $this->getAppCode()))); $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags); return $buffer; }
/** * Compile a map. * * @param Map $map The map. * @param Encoder $encoder The builder. * * @return void */ public function encodeMap(Map $map, Encoder $encoder) { $output = $encoder->getOutput(); $hash = spl_object_hash($map); if (!isset($this->initialized[$hash])) { $output->prepend(sprintf('%s = L.map(%s);', $encoder->encodeReference($map), $encoder->encodeArguments(array($map->getElementId(), $map->getOptions())))); $this->initialized[$hash] = true; } else { foreach ($map->getControls() as $control) { $encoder->encodeReference($control); } foreach ($map->getLayers() as $layer) { $encoder->encodeReference($layer); } $output->append($this->encodeMethodCalls($map->getMethodCalls(), $encoder)); } }
/** * Encode the div icon. * * @param DivIcon $icon The div icon. * @param Encoder $encoder The encoder. * * @return string */ public function encodeDivIcon(DivIcon $icon, Encoder $encoder) { return sprintf('%s = L.DivIcon(%s);', $encoder->encodeReference($icon), $encoder->encodeArguments(array($icon->getOptions()))); }
/** * Encode an control. * * @param string $name Control name. * @param AbstractControl $control The control object. * @param Encoder $encoder Javascript encoder. * @param null $flags Encoder flags. * * @return string */ protected function encodeSimpleControl($name, AbstractControl $control, Encoder $encoder, $flags = null) { $buffer = sprintf('%s = L.%s(%s)%s', $encoder->encodeReference($control), $name, $encoder->encodeValue($control->getOptions()), $encoder->close($flags)); $buffer .= $this->encodeMethodCalls($control->getMethodCalls(), $encoder, $flags); return $buffer; }
/** * {@inheritdoc} */ public function encode(Encoder $encoder, $flags = null) { $ref = $encoder->encodeReference($this); $buffer = sprintf('%s = new L.MarkerClusterGroup(%s)%s', $ref, $encoder->encodeArray($this->getOptions()), $encoder->close($flags)); foreach ($this->getLayers() as $layer) { $buffer .= "\n" . sprintf('%s.addLayer(%s);', $ref, $encoder->encodeReference($layer)); } $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags); return $buffer; }
/** * {@inheritdoc} */ public function encode(Encoder $encoder, $flags = null) { $buffer = sprintf('%s = new L.OverPassLayer(%s, %s)%s', $encoder->encodeReference($this), $encoder->encodeArray($this->getOptions(), JSON_FORCE_OBJECT), $encoder->encodeArray($this->getMinZoomIndicatorOptions()->getOptions(), JSON_FORCE_OBJECT), $encoder->close($flags)); $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags); return $buffer; }
/** * {@inheritdoc} */ public function encode(Encoder $encoder, $flags = true) { $buffer = sprintf('%s = L.geoJson.ajax(%s)%s', $encoder->encodeReference($this), $encoder->encodeArguments(array($this->url, $this->getOptions())), $encoder->close($flags)); foreach ($this->getLayers() as $layer) { $buffer .= "\n"; $buffer .= sprintf('%s.addLayer(%s);', $encoder->encodeReference($this), $encoder->encodeReference($layer)); } return $buffer; }
/** * {@inheritdoc} */ public function encode(Encoder $encoder, $flags = null) { $template = '%s(%s, %s, %s)%s'; $buffer = ''; if ($this->getCustomLayer()) { $ref = $encoder->encodeReference($this->getCustomLayer()); } else { $template = $encoder->encodeReference($this) . ' = ' . $template; $ref = 'null'; } $buffer .= sprintf($template, strtolower(static::getType()), $encoder->encodeValue($this->getUrl()), $encoder->encodeArray($this->getOptions(), JSON_FORCE_OBJECT), $ref, $encoder->close($flags)); $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags); return $buffer; }
/** * Encode a circle. * * @param string $type The circle type. * @param Circle $circle The circle object. * @param Encoder $builder The builder. * * @return array */ private function doCircleEncode($type, Circle $circle, Encoder $builder) { return sprintf('%s = L.%s(%s);', $builder->encodeReference($circle), $type, $builder->encodeArguments(array($circle->getLatLng(), $circle, $circle->getOptions()))); }
/** * {@inheritdoc} */ public function encode(Encoder $encoder, $flags = null) { $name = $this->encodeName(); $buffer = sprintf('%s = L.tileLayer.provider(\'' . $name . '\')' . $encoder->close($flags), $encoder->encodeReference($this)); $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags); return $buffer; }
/** * Get layer information correctly encoded. * * @param Layer[] $layers The layers. * @param Encoder $encoder The encoder. * * @return array */ private function encodeLayersInformation($layers, Encoder $encoder) { $layers = array_map(function ($layer) use($encoder) { return $encoder->encodeReference($layer); }, $layers); return '[' . implode(', ', $layers) . ']'; }
/** * Get references of given values. * * @param array $values Set of values. * @param Encoder $encoder The encoder. * * @return array */ protected function getReferences(array $values, Encoder $encoder) { return array_map(function ($value) use($encoder) { return $encoder->encodeReference($value); }, $values); }
/** * Encode a tile layer. * * @param TileLayer $layer The layer. * @param Encoder $builder The builder. * * @return bool */ public function encodeTileLayer(TileLayer $layer, Encoder $builder) { return sprintf('%s = L.tileLayer(%s);', $builder->encodeReference($layer), $builder->encodeArguments(array($layer->getUrl(), $layer->getOptions()))); }
/** * @inheritDoc */ public function encode(Encoder $encoder, $flags = null) { $buffer = sprintf('%s = L.ExtraMarkers.icon(%s)%s', $encoder->encodeReference($this), $encoder->encodeArray($this->getOptions(), JSON_FORCE_OBJECT), $encoder->close($flags)); $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags); return $buffer; }
/** * Get layer information, so that label is used. * * @param Layer[] $layers The layers. * @param Encoder $encoder The encoder. * * @return array */ private function encodeLayersInformation($layers, Encoder $encoder) { $prepared = ''; foreach ($layers as $layer) { if ($prepared) { $prepared .= ', '; } $prepared .= sprintf('%s: %s', $encoder->encodeValue($layer->getLabel()), $encoder->encodeReference($layer)); } return '{' . $prepared . '}'; }
/** * {@inheritdoc} */ public function encode(Encoder $encoder, $flags = null) { return sprintf('%s.%s', $encoder->encodeReference($this->object), parent::encode($encoder, $flags)); }