LocationController.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Wen\Utils\Settings;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Http;
  6. class LocationController extends BaseController
  7. {
  8. public function geocode_regeo(Request $request)
  9. {
  10. $longitude = $request->longitude;
  11. $latitude = $request->latitude;
  12. $poitype = $request->poitype;
  13. $radius = $request->radius;
  14. if(_empty_($latitude) || _empty_($longitude)){
  15. return $this->fail(200001);
  16. }
  17. if(_empty_($radius)){
  18. $radius = 1000;
  19. }else{
  20. $radius = (int)$radius;
  21. }
  22. if(_empty_($poitype)){
  23. $poitype = null;
  24. }
  25. // if(!in_array($poitype, ['高等院校','中学', '小学', '幼儿园', '成人教育', '职业技术学校'])){
  26. // $poitype = null;
  27. // }
  28. $poitype_str = '';
  29. if($poitype){
  30. $poitype_str = '&poitype='.$poitype;
  31. }
  32. $web_key = Settings::get('app_gaode_web_server_key', '');
  33. $url = 'https://restapi.amap.com/v3/geocode/regeo?key='.$web_key.'&radius='.$radius.$poitype_str.'&extensions=all&location='.$longitude.','.$latitude;
  34. $post = Http::get($url);
  35. if($post->successful()){
  36. $res = $post->json();
  37. if(_array_key($res, 'status', -1) == 0){
  38. return $this->fail(200006, [], $res['info']);
  39. }else if(_array_key($res, 'status', -1) == 1){
  40. return $this->success(['infocode'=>$res['infocode'], 'regeocode'=>$res['regeocode']]);
  41. }else{
  42. _logger_(__file__, __line__, $res);
  43. }
  44. }else{
  45. return $this->fail(200006, [], '服务端api请求出错');
  46. }
  47. }
  48. }