public static function processLocations() { $sublets = self::$coll->find(); $cityStateCounts = []; foreach ($sublets as $sublet) { if (empty($sublet['address']) || empty($sublet['city']) || empty($sublet['state'])) { continue; } $address = $sublet['address']; $city = $sublet['city']; $state = $sublet['state']; $location = "{$address}, {$city}, {$state}"; $geocode = GeocodeModel::get($location); if (is_null($geocode)) { continue; } $cityState = strtolower(getCityStateFromGeocode($geocode)); if (isset($cityStateCounts[$cityState])) { $cityStateCounts[$cityState]++; } else { $cityStateCounts[$cityState] = 1; } } arsort($cityStateCounts); return $cityStateCounts; }
private static function getGeocodeJSON($location) { $geocode = geocodeJSON($location); if (is_null($geocode)) { return null; } // Store the geocode for the location. GeocodeModel::record($location, $geocode); return $geocode; }
public static function processLocations() { $jobs = self::$coll->find(); $cityStateCounts = []; foreach ($jobs as $job) { if (empty($job['location'])) { continue; } $location = $job['location']; $geocode = GeocodeModel::get($location); if (is_null($geocode)) { continue; } $cityState = strtolower(getCityStateFromGeocode($geocode)); if (isset($cityStateCounts[$cityState])) { $cityStateCounts[$cityState]++; } else { $cityStateCounts[$cityState] = 1; } } arsort($cityStateCounts); return $cityStateCounts; }
public static function init(MongoCollection $coll) { self::$coll = $coll; }
public static function processByStudent($email) { $subletLocations = []; $jobLocations = []; $jobIndustries = []; foreach (self::$searches as $time => $search) { if (!is_array($search)) { continue; } if ($search['email'] != $email) { continue; } switch ($search['type']) { case 'sublets': if (!empty($search['data']['location'])) { $location = strtolower($search['data']['location']); // Location to geocode, to City, State. $geocode = GeocodeModel::get($location); if (is_null($geocode)) { continue; } $cityState = strtolower(getCityStateFromGeocode($geocode)); if (isset($subletLocations[$cityState])) { $subletLocations[$cityState]++; } else { $subletLocations[$cityState] = 1; } } break; case 'jobs': if (!empty($search['data']['city'])) { $location = strtolower($search['data']['city']); // Location to geocode, to City, State. $geocode = GeocodeModel::get($location); if (is_null($geocode)) { continue; } $cityState = strtolower(getCityStateFromGeocode($geocode)); if (isset($jobLocations[$cityState])) { $jobLocations[$cityState]++; } else { $jobLocations[$cityState] = 1; } } if (!empty($search['data']['industry'])) { $industry = strtolower($search['data']['industry']); if (isset($jobIndustries[$industry])) { $jobIndustries[$industry]++; } else { $jobIndustries[$industry] = 1; } } break; } } arsort($subletLocations); arsort($jobLocations); arsort($jobIndustries); return ['subletLocations' => $subletLocations, 'jobLocations' => $jobLocations, 'jobIndustries' => $jobIndustries]; }
// Imports the MongoURI for the database. require_once 'geocode.php'; require_once 'DeciderSublets.php'; require_once 'DeciderJobs.php'; require_once 'DeciderStudent.php'; // Connect to the databases. $m1 = new MongoClient($dbUri1); $m2 = new MongoClient($dbUri2); $db1 = $m1->sublite; $db2 = $m2->subliteinternships; $collListings = $db1->listings; $collJobs = $db2->jobs; $collCompanies = $db2->companies; $collGeocodes = $db1->geocodes; $collGeocodes->createIndex(['location' => 1]); GeocodeModel::init($collGeocodes); // Get the search data. $searches0 = $db2->app->findOne(['_id' => 'searches']); $searches1 = $db2->app->findOne(['_id' => 'searches1']); $searches2 = $db2->app->findOne(['_id' => 'searches2']); $searches = array_merge($searches0, $searches1, $searches2); ProcessSearch::init($searches); if (isset($_POST['goal'])) { switch ($_POST['goal']) { case 'sublets': require_once 'decide_sublets.php'; break; case 'jobs': require_once 'decide_jobs.php'; break; case 'student':