3

データベースに複数の住所を保存しています。複数の住所の経度と緯度を取得したい。私はコードを使用しています:

foreach($address as $addr)
{
      $prepAddr = str_replace(' ','+',$addr);
      $geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&sensor=false');
      $output= json_decode($geocode);
      echo   $latitude = $output->results[0]->geometry->location->lat;
      echo   $longitude = $output->results[0]->geometry->location->lng;
}

$address は、すべてのアドレスが返される配列です。

問題は、アドレスが 500 を超えるため、ページの読み込みに時間がかかることです。リンクを参照しました複数の住所の緯度経度を取得する方法 geo-location

しかし、これを機能させることはできません。

助けてくれますか。どんな助けでも本当に感謝しています。

4

2 に答える 2

0

遅延は、ループ自体の速度よりも、API に接続してデータを取得するのにかかる時間に関係していることをお勧めします。

これをよりスケーラブルにするために、問題なく機能するアドレスの数を調べてから、それらをバッチで処理してみませんか。100 OK で動作する場合は、 でロードし、実行の最後に、スクリプトがなくなるまでstart=100スクリプト自体を再度呼び出します。start=$start+100

于 2013-09-11T11:07:46.453 に答える