GeocoderController.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace app\index\controller;
  3. use think\exception\ValidateException;
  4. use app\model\Geocoder;
  5. use app\model\Config;
  6. use app\model\Address;
  7. class GeocoderController extends Base
  8. {
  9. public function address2area()
  10. {
  11. $postdata = input('post.');
  12. if (!empty($postdata['address'])) {
  13. $resarea = Address::Address2area($postdata['address']);
  14. }
  15. if ($resarea['province_name'] && $resarea['city_name'] && $resarea['district_name']) {
  16. $data = $resarea;
  17. $data['is_regex'] = 1;
  18. } else {
  19. $geodata = Geocoder::reverse_geocoding($postdata['latitude'], $postdata['longitude']);
  20. $data['province_name'] = $geodata['addressComponent']['province'];
  21. $data['city_name'] = $geodata['addressComponent']['city'];
  22. $data['district_name'] = $geodata['addressComponent']['district'];
  23. }
  24. return $this->json(['data' => $data]);
  25. }
  26. public function locationscope()
  27. {
  28. $postdata = input('post.');
  29. $data = Geocoder::reverse_geocoding($postdata['latitude'], $postdata['longitude']);
  30. $data['city'] = $data['addressComponent']['city'];
  31. $Configdata = Config::getconfig();
  32. if ($Configdata['locationscope'] == 3 && $data['addressComponent']['district']) {
  33. $data['city'] = $data['addressComponent']['district'];
  34. }
  35. return $this->json(['data' => $data]);
  36. }
  37. public function reversegeocoding()
  38. {
  39. $postdata = input('post.');
  40. $data = Geocoder::reverse_geocoding($postdata['latitude'], $postdata['longitude']);
  41. return $this->json(['data' => $data]);
  42. }
  43. }