/** * @param $markerBuilder * @param $stationState * @param $infoWindowBuilder * * @return Marker */ private function getMarker(MarkerBuilder $markerBuilder, StationState $stationState, InfoWindowBuilder $infoWindowBuilder) { $marker = $markerBuilder->build(); $station = $stationState->getStation(); $marker->setPosition($station->getLatitude(), $station->getLongitude()); $infoWindow = $infoWindowBuilder->build(); $path = $this->get('router')->generate('station_state_graph', array('stationId' => $station->getId())); $infoWindow->setContent(sprintf('Bikes remaining : %d <br />Free spaces: %d <br /> Link: <a href="%s">Graph</a> ', $stationState->getAvailableBikes(), $stationState->getFreeSlots(), $path)); $marker->setInfoWindow($infoWindow); return $marker; }
/** * @return StationState[] */ public function getSnapshot() { $response = $this->browser->post(self::BICING_URL); $stations = $this->parse($response->getContent()); $time = new \DateTime(); return array_map(function ($element) use($time) { return StationState::constructFromApiData($element, $time); }, $stations); }