/**
  * @param $column
  * @param $latitude
  * @param $longitude
  * @param $distance
  * @param array $keyToInclude
  *
  * @return Collection|ParseObject[]
  */
 public function within($column, $latitude, $longitude, $distance, $keyToInclude = [])
 {
     $location = new ParseGeoPoint($latitude, $longitude);
     for ($i = 0; $i < count($keyToInclude); $i++) {
         $this->query->includeKey($keyToInclude[$i]);
     }
     switch (config('parse.units', 'kilometers')) {
         case 'kilometers':
             $this->query->withinKilometers($column, $location, $distance);
             break;
         case 'miles':
             $this->query->withinMiles($column, $location, $distance);
             break;
         case 'radians':
             $this->query->withinRadians($column, $location, $distance);
             break;
     }
     return Collection::make($this->query->find($this->useMasterKey));
 }
 public function testGeoMaxDistance()
 {
     for ($i = 0; $i < 3; ++$i) {
         $obj = ParseObject::create('TestObject');
         $point = new ParseGeoPoint(0.0, $i * 45.0);
         $obj->set('location', $point);
         $obj->set('id', $i);
         $obj->save();
     }
     // baseline all
     $query = new ParseQuery('TestObject');
     $point = new ParseGeoPoint(1.0, -1.0);
     $query->near('location', $point);
     $results = $query->find();
     $this->assertEquals(3, count($results));
     // all
     $query = new ParseQuery('TestObject');
     $query->withinRadians('location', $point, 3.14 * 2);
     $results = $query->find();
     $this->assertEquals(3, count($results));
     // all
     $query = new ParseQuery('TestObject');
     $query->withinRadians('location', $point, 3.14);
     $results = $query->find();
     $this->assertEquals(3, count($results));
     // 2
     $query = new ParseQuery('TestObject');
     $query->withinRadians('location', $point, 3.14 * 0.5);
     $results = $query->find();
     $this->assertEquals(2, count($results));
     $this->assertEquals(1, $results[1]->get('id'));
     // 1
     $query = new ParseQuery('TestObject');
     $query->withinRadians('location', $point, 3.14 * 0.25);
     $results = $query->find();
     $this->assertEquals(1, count($results));
     $this->assertEquals(0, $results[0]->get('id'));
 }