09/11/07追記: 既に使用不可のため配布を停止しました。GmlMgrをご使用ください。
本業が昨日一段落したため、久々のブログ更新です。
今月入ったあたりから gm_lite で地図をダウンロードしようとすると、制限がかかってしまい、0byte の PNGファイルが大量に作成されてしまいます。
どうやら Spyware や Virus 等がアクセスすることが多いようで、そういった類を遮断するために Google が取った措置のようです。
地図がダウンロードできないのでは qgmap も使い物にならないので、とりあえず回避するために down_imgs.pl を修正してみました。
また、日本の地名にローマ字表記が追加される問題も修正してあります。
正式版は tera 様からリリースされると思いますので、とりあえずそれまでのつなぎとしてお使いください。
- down_imgs.pl.txt (09/11/07変更: 使用不可のため配布停止。GmlMgrをご使用ください)
ファイル名を down_imgs.pl に変更し、gm_lite の bin/down_imgs.pl と差し替えてください。
使い方は今までの down_imgs.pl と同じです。
地名は未確認ですが、0バイトファイルはできなくなりました。ありがとうございます。
GPSで現在地の表示機能を気長に待っておりますので、よろしくお願いします。
更新しないとなと思いつつ、あまり進んでなくてすいません (^^;
次は大幅な改良は無く、マイナーチェンジの予定です。
次回実装予定(既に一部実装済み)の機能は以下の2つです。
・ダブルタップでセンタリング機能 (sugarware様のご要望)
・ガンマ補正 (青嵐様のご要望)
GPS は調査と検討を行ってますが、別スレッドを立てる必要があったりと、ちょっと気合と時間が必要そうなので、次回リリースへの実装は見送りました。
もうしばらくお待ちください m(v_v)m
GM_Liteのことをここで質問するのはどうかとも思いますが、
down_imgs.plを入れ替えてのことなのでここで質問させて下さい。
down_imgs.plを入れ替えて試してみました。
初めの内は順調だったのですが、mapの倍率が7になって少した辺りで
open2: IO::Pipe: Can’t spawn-NOWAIT: Resource temporarily unavailable at ..bindown_imgs.pl line 71
というエラーが出てそれ以上DL出来なくなってしまいました。
何度か試してみましたが、同じところで止まってしまいます。
googleの制限のせいなのでしょうか。あるいはどこか
やり方が違っているのでしょうか。
おわかりの方がいらしたらお教え頂けないでしょうか。
よろしくお願い致します。
はじめまして、rikimaru 様。
何ででしょうね・・。私は見たことないエラーですねぇ。
お使いの環境は Windows + Active Perl でしょうか?
ちょっといま旅行中でして、確認できる環境がないので帰宅後 Active Perl を入れて確認してみます。
Linux 環境でしか使ってなくて・・・ ^^;
まったくのあてずっぽうなんですが、9 行目の $parallel = 12 の 12 を 4 とか小さい値にして試してみていただけますか?
ダウンロード速度は若干低下するかもしれないですが、ちょっと挙動が変わるかもしれません。
あてずっぽうなので、あまり期待せずに試してみてください・・ (–;
bucchi様はじめまして
御旅行中なのにわざわざお答え頂ありがとうございます。
環境はおっしゃるとおりWindows + Active Perlです。
$parallel = 4にしましたところ、今まで止まっていたところを通り越して
動くようになりました。
DLの速度は、言われると遅くなっているかも知れないのですが、
気になる程ではありません。
...と書いていたら、止まってしまいました。数値を4から1まで
試してみましたが、どれもしばらくすると止まってしまうようです。
でも以前と違って、止まるところが同じではありません。
何度もごり押しすれば先に進むことは出来そうなので、
作業をしつつリトライして乗り切ろうと思います。
どうもありがとうございました。
こちらでも似たような症状が出たので報告させていただきます。
こちらの環境はwindows+activePerl、実行していると
open2: IO::Pipe: Can’t spawn-NOWAIT: Resource temporarily unavailable at ..bindown_imgs.pl line 71
というエラーと共に数十枚保存したところで止まります。paralellも関係なさそうです。
さらにこの状態で10回くらい試していると、今度は6枚くらい保存したところで何のエラーも掃かずに停止します。
状況、分かりますでしょうか。
rikimaru様、匿名ユーザ様
昨晩旅行から帰ってきまして、ちょっと試してみましたが、私の環境では起こりませんでした・・・。
エラーメッセージでググってみると、active perl で作れる子プロセス(スレッド?)数に上限があるようで、上限に達すると出るエラーのようですね。
解決策として waitpid を実行しろと書かれているページがあったのですが、down_imgs.pl ではこれをやっているんですよね。。。
何度か実行しているうちに、前に実行されたダウンロードプロセスが残ってしまっているとか??
問題が発生した時に、Ctrl+Alt+Del でタスクマネージャを起動して wget.exe のプロセスが残ってないか確認してみて頂けますか?
現象が分かれば対策できると思いますので。
$parallel = 12にして、タクスマネージャを見ながら実行してみました。
実行すると、DLしている時にwgetがわーっと10個くらい起動されて、
増えたり減ったりします。エラーが出て止まると全て無くなる、
という感じでした。問題発生後はwgetは残っていません。
これで参考になりますでしょうか。
ちなみに、OSはwinXP sp3、Active Perlのバージョンは5.8.8.824です。
5.10.0.1004も試しましたが同じ結果でした。
同じpcでhtmlのサーバを建てています。perlも使っているのですが、
もしかするとそれが関係していますでしょうか??
試しにサーバを止めてやってみましたが、やはりエラーが出ました。
ちなみに、DL自体はなんとか完了しました。
zaurusでperlを使ってDLしてみたのですが、
やはりエラーが出ました。
open2: fork failed: Resource temporarily unavailable at ../bin/down_imgs.pl line 71
というものです。ちなみにzaurusはスペシャルカーネルのv18j、
perlは塚本さんのWalrus,Visit.にあるperl_5.6.1-8.3-5_arm.ipk
をインストールして使っています。
参考になるといいのですが。。
いろいろ試してみていただきありがとうございます。
zaurus で起こりましたか・・・。
Active Perl 固有のものだと思っていたのですが。
zaurus でも起こると言うことは、スクリプトに原因があって、HTTPサーバ用の perl は影響していないと思います。
エラーの原因はまだよく分からないのですが、エラーが出た後に復旧することはできると思いますので、エラー後の処理を行うように修正してみます。
少々お待ちください。
0byte PNGしかダウンロード出来ないので、上記のdown_imgs.plに置き換えてやってみたのですが、ダメでした。
さらにグーグルが何らかの対応をしたということなのでしょうか?
はじめまして、Hiro様。
試してみたところ、私の環境ではダウンロードできました。
新たな対策は行っていないようです。
おそらく、お使いの IP アドレスがダウンロード禁止状態になっているのだと思います。
一度、オリジナルの down_imgs.pl を使ってダウンロード禁止状態にしてしまうと、Google 側が解除するまでその IP アドレスでは地図がダウンロードできなくなります。
そのため、このスクリプトに入れ替えてもダウンロードできないのだと思います。
ブラウザで Google Maps を表示させて、地図が表示されるか確認してみてください。
禁止状態ではブラウザからでも地図がダウンロードできなくなり、表示されないと思います。
固定 IP でなければ、再接続(ADSLモデムの再起動など)をして IP アドレスを変えればダウンロードできるようになると思います。
私の家では素直に解除を待ってみたのですが、1日半位かかってやっと解除されました。
いろいろと、有益なソフトを公開していただきありがとうございます。
さて、私も先週(先々週?)ぐらいからGoogle Mapsからのダウンロードがうまくいかなくなりました。0byte PNGのオンパレードです。通常はADLSを使っており、今回IPアドレス変更のためEmobileの通信カードを使ってやってみましたが、やはり同様です。しかし、よく確認するとダウンロードされたPNGがすべて0byteというわけではなく、数%は正常なファイルがありました。
つまり状況は以下のようになっております。
1)IPアドレスの制限ではなさそう。
2)ダウンロードされるpngファイルの大多数は0byteだが、
正常なファイルが数%ある。(母数 約250個)
※環境はwindows+activePerl
別途、rikimaruさん(2008/11/23)と同様に、私も以下のエラーが発生します。
open2: IO::Pipe: Can’t spawn-NOWAIT: Resource temporarily unavailable at ..bindown_imgs.pl line 71
解決していただけると幸いです。
ブラウザは Google Mapsの地図は正常に表示されました。
(0byteのpngしかダウンロードできない場所が、ブラウザでは正常に表示されることを確認しました)
はじめまして、Matsu様。
再度確認してみましたところ、Matsu 様がおっしゃるとおり、特定のファイルが 0 Byte になってしまう現象が確認できました。
何度やっても同じ座標の地図がダウンロードできないようですね。
スクリプトを修正したところ、正常にダウンロードできるようになったので新しいブログエントリで公開します。お試しください。
早速に対応くださり、ありがとうございます。
期待しております。
ブログを投稿したつもりだったのですが、「公開」設定し忘れてました ^^;
公開しましたのでお試しください。