Exemplo n.º 1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     Hotspot::truncate();
     $places = Place::all();
     $clusters = $this->getClusters($places->all(), 1.5);
     $centroids = $this->getCentroids($clusters);
     $hotspots = array_map(function ($centroid) {
         $locality = $this->getLocalityForLatLon($centroid['latitude'], $centroid['longitude']);
         $categories = [];
         foreach ($centroid['places'] as $place) {
             foreach ($place->ranks as $rank) {
                 if (!isset($categories[$rank->category->name])) {
                     $categories[$rank->category->name] = 0;
                 }
                 $categories[$rank->category->name]++;
             }
         }
         arsort($categories);
         $categoryNames = array_keys($categories);
         return Hotspot::create(['name' => $locality, 'known_for' => implode(', ', $categoryNames), 'latitude' => $centroid['latitude'], 'longitude' => $centroid['longitude'], 'count' => $centroid['count']]);
     }, $centroids);
 }