I am running the following function within a MySQL search query which generally find around 100 results. the function retrieves distance between two location using google api.
the problem looks like the loop is crashing the script anything over 10 results.
is there any way to fix this issue?
pause for the google call back?
any suggestion helpful.
function get_driving_information($start, $finish, $raw = false)
{
if(strcmp($start, $finish) == 0)
{
$time = 0;
if($raw)
{
$time .= ' seconds';
}
return array('distance' => 0, 'time' => $time);
}
$start = urlencode($start);
$finish = urlencode($finish);
$distance = 'unknown';
$time = 'unknown';
$url = 'http://maps.googleapis.com/maps/api/directions/xml?origin='.$start.'&destination='.$finish.'&sensor=false';
if($data = file_get_contents($url))
{
$xml = new SimpleXMLElement($data);
if(isset($xml->route->leg->duration->value) AND (int)$xml->route->leg->duration->value > 0)
{
if($raw==true)
{
$distance = (string)$xml->route->leg->distance->text;
$time = (string)$xml->route->leg->duration->text;
}
if($raw=="miles")
{
$distance = (string)$xml->route->leg->distance->value / 1000 / 1.609344;
$distance = number_format($distance,1)." miles";
$time = (string)$xml->route->leg->duration->text;
}
else
{
$distance = (int)$xml->route->leg->distance->value / 1000 / 1.609344;
$time = (int)$xml->route->leg->duration->value;
}
}
else
{
throw new Exception('Could not find that route');
}
//return array('distance' => $distance, 'time' => $time);
return $distance;
}
else
{
throw new Exception('Could not resolve URL');
}
}