エラーなしでbashスクリプトを使用して、複数の軌跡から複数のアドレスをどのように取得できますか?

エラーなしでbashスクリプトを使用して、複数の軌跡から複数のアドレスをどのように取得できますか?

私は多くの軌跡データを持っています。 500000. 私はこの座標のアドレスを取得しようとします。 Linuxでbashコマンドを使用しています。

#!/bin/bash

filename="$1"

while  read -r line
do
uid=$(echo $line | cut -f1 -d,)
lat=$(echo $line | cut -f2 -d,)
long=$(echo $line | cut -f3 -d,)
timestamp=$(echo $line | cut -f4 -d,)
printf "$uid,$lat,$long,$timestamp|"
wget -O- -q "http://maps.google.com/maps/api/geocode/xml?latlng=$lat,$long&sensor=false"|\
      grep formatted_address|\
      head -n1|\
      cut -d\> -f2|\
      cut -d\< -f1
done < "$filename"

2500個の住所しか入手できません。 2500 座標以降、「wget」コマンドは機能しません。モデムをリセットすると、2500を超えるアドレスが得られます。座標から住所を見つける方法はありますか?それとも、2500アドレスを取得した後にbashコマンドでIPをリセットできますか?ありがとうございます。

私の入力ファイルには、 11395,39.9050283,32.6977617,2008-11-03T16:58:05Z 私の座標など500,000のデータが含まれています。39.9050283,32.6977617

私の出力ファイルは次のとおりです11395,39.9050283,32.6977617,2008-11-03T16:58:05Z|11395,39.9051033,32.6984550,2008-11-03T16:58:06Z|Erler, Eskişehir Yolu No:120, 06790 Etimesgut/Ankara, Turkey

答え1

現在起こっていることは、GoogleがあなたのAPIリクエストを制限していることです。無料サービスで入手できるデータ量は制限されています。明らかに2500回の要求の後、彼らはあなたの連絡を切った。 「モデムをリセット」すると、明らかにISPから別のIPアドレスを受け取るため、ブロックされる前にさらに2500回の要求を行うことができます。

戦略を考え直す必要があります。 500,000件のリクエストの場合は、サービス料を支払うか、他のソース(OpenStreetMapなど)からデータを取得する必要があります。 OpenStreetMapからデータを取得する場合は、無料ですが、短時間であまりにも多くの要求をしても、彼らはまだ感謝しないことを検討してください。このようなデータが必要な場合は、一部のデータベースをダウンロードしてローカルに照会する必要があります。

関連情報