function getAllRestaurantsAround($klm) { try { $userPos = new ParseGeoPoint(floatval($this->latitude), floatval($this->longitude)); $query = new ParseQuery("Restaurant"); $query->withinKilometers("coord", $userPos, $klm); $query->equalTo("validated", true); $results = $query->find(); if ($results != null) { return $results; } } catch (ParseException $ex) { echo $ex; } return null; }
function getAllRestaurantsAround($klm) { try { $userPos = new ParseGeoPoint(floatval($_GET['latitude']), floatval($_GET['longitude'])); $query = new ParseQuery("Restaurant"); $query->withinKilometers("coord", $userPos, $klm); // Limit what could be a lot of points. // Final array of objects $results = $query->find(); if ($results = null) { echo "Aucun restaurant n'est disponible dans la zone"; } } catch (ParseException $ex) { echo $ex; } return $results; }
/** * @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 testGeoMaxDistanceWithUnits() { ParseTestHelper::clearClass("PlaceObject"); // [SAC] 38.52 -121.50 Sacramento,CA $sacramento = new ParseGeoPoint(38.52, -121.5); $obj = ParseObject::create('PlaceObject'); $obj->set('location', $sacramento); $obj->set('name', 'Sacramento'); $obj->save(); // [HNL] 21.35 -157.93 Honolulu Int,HI $honolulu = new ParseGeoPoint(21.35, -157.93); $obj = ParseObject::create('PlaceObject'); $obj->set('location', $honolulu); $obj->set('name', 'Honolulu'); $obj->save(); // [51Q] 37.75 -122.68 San Francisco,CA $sanfran = new ParseGeoPoint(37.75, -122.68); $obj = ParseObject::create('PlaceObject'); $obj->set('location', $sanfran); $obj->set('name', 'San Francisco'); $obj->save(); // test point SFO $point = new ParseGeoPoint(37.6189722, -122.3748889); // Kilometers // baseline all $query = new ParseQuery('PlaceObject'); $query->near('location', $point); $results = $query->find(); $this->assertEquals(3, count($results)); // max with all $query = new ParseQuery('PlaceObject'); $query->withinKilometers('location', $point, 4000.0); $results = $query->find(); $this->assertEquals(3, count($results)); // drop hawaii $query = new ParseQuery('PlaceObject'); $query->withinKilometers('location', $point, 3700.0); $results = $query->find(); $this->assertEquals(2, count($results)); // drop sacramento $query = new ParseQuery('PlaceObject'); $query->withinKilometers('location', $point, 100.0); $results = $query->find(); $this->assertEquals(1, count($results)); $this->assertEquals('San Francisco', $results[0]->get('name')); // drop SF $query = new ParseQuery('PlaceObject'); $query->withinKilometers('location', $point, 10.0); $results = $query->find(); $this->assertEquals(0, count($results)); // Miles // max with all $query = new ParseQuery('PlaceObject'); $query->withinMiles('location', $point, 2500.0); $results = $query->find(); $this->assertEquals(3, count($results)); // drop hawaii $query = new ParseQuery('PlaceObject'); $query->withinMiles('location', $point, 2200.0); $results = $query->find(); $this->assertEquals(2, count($results)); // drop sacramento $query = new ParseQuery('PlaceObject'); $query->withinMiles('location', $point, 75.0); $results = $query->find(); $this->assertEquals(1, count($results)); $this->assertEquals('San Francisco', $results[0]->get('name')); // drop SF $query = new ParseQuery('PlaceObject'); $query->withinMiles('location', $point, 10.0); $results = $query->find(); $this->assertEquals(0, count($results)); }