Example #1
0
 public function relatedNeighborhoods($lat1, $lng1, $lat2, $lng2)
 {
     $collection = [];
     $url = "https://api.foursquare.com/v2/search/recommendations?locale=fr&explicit-lang=true&v=20151103&m=foursquare&limit=30&mode=mapRequery&intent=bestnearby&sw=" . $lat1 . "%2C" . $lng1 . "&ne=" . $lat2 . "%2C" . $lng2 . "&wsid=1V3PHKJ4FGVAELBCWHO2Z12PQCOUNJ&oauth_token=QEJ4AQPTMMNB413HGNZ5YDMJSHTOHZHMLZCAQCCLXIX41OMP";
     $data = isKh('4sq.' . sha1($lat1 . $lng1 . $lat2 . $lng2), function () use($url) {
         return fgc($url);
     });
     $tab = json_decode($data, true);
     if (isset($tab['response'])) {
         $response = $tab['response'];
         if (isset($response['context'])) {
             if (isset($response['context']['relatedNeighborhoods'])) {
                 foreach ($response['context']['relatedNeighborhoods'] as $quartier) {
                     $feature = isAke($quartier, 'feature', []);
                     if (!empty($feature)) {
                         $name = isAke($feature, 'name', null);
                         $geometry = isAke($feature, 'geometry', null);
                         $display = isAke($feature, 'displayName', null);
                         $id_maponics = str_replace('maponics:', '', isAke($feature, 'id', null));
                         $collection[] = ['id_maponics' => $id_maponics, 'name' => $name, 'display' => $display, 'geometry' => $geometry];
                         Model::GeoNeighborhood()->create(['id_maponics' => $id_maponics, 'name' => $name, 'display' => $display, 'geometry' => $geometry])->save();
                     }
                 }
             }
         }
     }
     return $collection;
 }