处理反向地理定位响应

时间:2019-06-10 12:18:28

标签: php curl reverse-geocoding

我有一个反向地理编码脚本,该脚本根据纬度和经度返回一个城市名称,只要我们尝试仅查看一个城市的结果,它就可以正常工作。但是,当我在foreach循环中(大约3000个城市一台)运行相同的脚本时,将花费一些时间,但返回一个空白响应,因此我的从属代码给出了错误的结果。

已经编写了以下代码,该代码在大约前30条记录中工作正常,然后在20条奇数记录后再次给出空白响应,并给出了正确的结果,依此类推。因此,我需要为每30条记录执行一次此脚本,而我的总记录接近3万。

foreach ($cityArray as $city)
{
    $curl = curl_init('https://us1.locationiq.com/v1/reverse.php?key=MY_KEY&lat=CITY_LATITUDE&lon=CITY_LONGITUDE&format=json');

    curl_setopt_array($curl, array(
      CURLOPT_RETURNTRANSFER    =>  true,
      CURLOPT_FOLLOWLOCATION    =>  true,
      CURLOPT_MAXREDIRS         =>  10,
      CURLOPT_TIMEOUT           =>  30,
      CURLOPT_CUSTOMREQUEST     =>  'GET',
    ));

    $response = curl_exec($curl);
    $err = curl_error($curl);

    if ($err) 
        ```Joomla log error code
    else 
        $json = json_decode($response);

                ``` update the record into table with decode json array object
    curl_close($curl);
}

30个奇数记录后,脚本返回空白响应。如果我们再次执行相同的脚本,它将给出结果。脚本应至少执行3000条记录,而不能给出30条记录的正确结果。

0 个答案:

没有答案