/** * 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)); } }
/** * {@inheritdoc} */ public function encode(Encoder $encoder, $flags = null) { return $encoder->encodeArguments($this->getArguments(), $flags); }
/** * 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()))); }
/** * {@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; }
/** * Compile a control. * * @param string $type The control type. * @param Control $control The control definition. * @param Encoder $encoder The encoder. * * @return string */ private function doControlEncode($type, Control $control, Encoder $encoder) { return sprintf('%s = L.control.%s(%s);', $encoder->encodeReference($control), $type, $encoder->encodeArguments(array($control->getOptions()))); }
/** * 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()))); }
/** * 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()))); }
/** * Encode a marker. * * @param Marker $marker The marker. * @param Encoder $encoder The encoder. * * @return bool */ public function encodeMarker(Marker $marker, Encoder $encoder) { return sprintf('%s = L.marker(%s);', $encoder->encodeReference($marker), $encoder->encodeArguments(array($marker->getLatLng(), $marker->getOptions()))); }