2012-06-27 5 views
1

У меня есть проблема с этой функциейПолучить широту-долготу от Google

public function getCoords($address){ 
    $coordinatesSplit=array(0=>0,1=>0); 
    $request_url = $this->_baseUrl . "&oe=utf-8&q=" . urlencode($address); 
     $xml = simplexml_load_file($request_url);  
     if (! empty($xml->Response)) { 
      $point= $xml->Response->Placemark->Point; 

       $coordinatesSplit = explode(",", $point->coordinates); 
       // Format: Longitude, Latitude, Altitude 

      } 
     $this->latitude = $coordinatesSplit[1]; 
     $this->longitude= $coordinatesSplit[0]; 
} 

работает хорошо, но если я ставлю его в цикл адресов иногда пропустить адрес (полностью случайный). Если я запускаю цикл дважды, иногда пропускает результат, а иногда и другой. Я считаю, что это вызвано таймаутом. Могу ли я ждать, пока эта функция не будет готова?

спасибо советы

+0

уверен. почему бы не использовать: http://php.net/manual/en/function.sleep.php? – alfasin

+0

снова попробовал спать (5) и, похоже, спасибо, спасибо за комментарий. I Googled и нашел, что вы можете делать 20 запросов в секунду. Я добавил usleep (500000), и теперь он отлично работает Еще раз спасибо – Andreah

+1

хорошая работа! напишите содержание своего комментария как «ответ» и примите его, чтобы другие люди могли получить от него. :) – alfasin

ответ

1

снова пытался спать (5) и, кажется, в порядке. I Googled и нашел, что вы можете делать 20 запросов в секунду. Я добавил usleep (500000), и теперь он отлично работает

Спасибо Alfasin!

Смежные вопросы