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; }