getGeojson(), true); $data['features'][0]['properties'] = array_merge($data['features'][0]['properties'], [ 'name' => $task->getName(), 'url' => $this->router->generate('app_task_show', ['projectSlug' => $task->getProject()->getSlug(), 'taskSlug' => $task->getSlug()], UrlGeneratorInterface::ABSOLUTE_URL), 'color' => $this->taskLifecycleStateMachine->getMetadataStore()->getPlaceMetadata($task->getStatus())['color'], ]); return $data; } public function generateGeoJson($entity) { $geoJsons = []; if ($entity instanceof Task) { $task = $entity; $geoJsons[] = GeoJson::jsonUnserialize($this->getFullGeojson($task)); } elseif ($entity instanceof Project) { $project = $entity; foreach ($project->getTasks() as $task) { $geoJsons[] = GeoJson::jsonUnserialize($this->getFullGeojson($task)); } } return $geoJsons; } }