public function getFacilities($continent) { $output = []; // Iterate through the Facility types foreach (FacilityType::orderBy('name')->get() as $type) { // Get the markers for the facilities nnnnnnnnnnnnnn $facilities = Facility::with('FacilityType')->with('linkedFacilities')->where('continent_id', '=', $continent->id)->where('facility_type_id', '=', $type->id)->orderBy('name')->get(); // Skip if no markers exist for that type if (count($facilities) == 0) { $this->log("No " . $type->name . " facilities found."); continue; } $output[$type->slug] = []; // Add the facilities to the output foreach ($facilities as $facility) { // Ignore if Warpgate facility has no position // if ( strpos($facility->name, 'Warpgate') !== false and (is_null($facility->lat) or is_null($facility->lng) or $facility->lat == 0 or $facility->lng == 0 )) { // $this->log($facility->name." has no position"); // continue; // } // Facility Name $output[$type->slug][$facility->id] = ['name' => $facility->name]; // Facility Position if (!is_null($facility->lat) or !is_null($facility->lng)) { $x = (double) $facility->lat; $y = (double) $facility->lng; // $output[$type->slug][$facility->id]['xy'] = [(float)$facility->lat, (float)$facility->lng ]; } else { $x = (double) $facility->lat_override; $y = (double) $facility->lng_override; // $output[$type->slug][$facility->id]['xy'] = [(float)$facility->lat_override, (float)$facility->lng_override ]; } if (!is_null($x) and !is_null($y) and $x != 0 and $y != 0) { $output[$type->slug][$facility->id]['xy'] = [$x, $y]; } // Lattice Links if (count($facility->linkedFacilities) > 0) { $output[$type->slug][$facility->id]['links'] = []; foreach ($facility->linkedFacilities as $linkedFacility) { $output[$type->slug][$facility->id]['links'][] = (int) $linkedFacility->id; } } } } return $output; }