一度に多数の住所 (~1500) をジオコーディングする必要があるアプリケーションがあります。Javascript Google Maps API Library v3 を使用して緯度と経度を取得しています。情報は後で使用するために MySQL データベースに保存されています。
明らかにこれには時間がかかります..私のコードはアドレスを配列に入れ、その配列で再帰関数を呼び出します。関数は各住所を取得し、ジオコーディングを試みます。ジオコードが成功した場合、関数は次の住所に進みます。ジオコードが を返した場合ZERO_RESULTS
、関数は次の住所に進みます。ジオコードが を返した場合OVER_QUERY_LIMIT
、関数は を使用setTimeout
して一定時間一時停止し ( に保存されてvar timeout
から、再試行します。
今、私は のさまざまな値を試してみましたtimeout
が、どれだけうまく機能するかが異なります..おそらく2000
、または 2 秒が最適でした。これにより、約 365 の住所をジオコーディングできました。ただし、プログラムが約 250 のアドレスをコーディングすると、速度が完全に低下し、10 秒ごとに 1 つのアドレスをコーディングするようになります。
だから..このプロセスをスピードアップする方法を知っている人はいますか? 現在、同じアドレスで関数が呼び出された回数をチェックするカウンターもあります (OVER_QUERY_LIMIT
アドレスがコード化される前に受信したエラーの数を追跡するため)。普通なら2秒遅らせて、同じアドレスがOVER_QUERY_LIMIT
10回来たら30秒くらい遅らせた方がいいのでしょうか?
どんな助けでも大歓迎です!乾杯