私は多くの軌跡データを持っています。 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からデータを取得する場合は、無料ですが、短時間であまりにも多くの要求をしても、彼らはまだ感謝しないことを検討してください。このようなデータが必要な場合は、一部のデータベースをダウンロードしてローカルに照会する必要があります。