GoogleMaps のダウンロード制限回避版として公開していた down_imgs.pl を更新しました。(down_imgs-4.pl.txt)
また、ブログに埋もれてしまいそうだったのでダウンロードページへ移動しました。
今回の修正は、ダウンロード制限回避とは関係ないのですが、ダウンロードに失敗したPNGファイルを削除する修正を加えています。(まぐ様のご要望から行き着いた機能です。ありがとうございます。)
ネットワークエラーでダウンロードが途中で終わってしまったり、指定位置・縮尺の地図が存在せず、0Byteだった場合に、いままでは表示できないPNGファイルが残ってしまっていたのですが、今回の修正でそのファイルが削除されます。
エラーとなったファイルが削除されることで、再度ダウンロードを行うとそのファイルが再ダウンロードされるようになります。 0Byte ファイルや壊れたファイルが残りにくくなったはずです。
ただ、申し訳ないのですが、既にダウンロードされた地図ファイルで壊れているファイルを削除することはできません。これからダウンロードする際にエラーだったファイルが削除されるだけです。
(今更気づいたのですが、これではご要望に答えられてないですね ^^;)
ダウンロード済みファイルのチェックは・・・もうちょっと考えてみます (ーー;
最初にこの修正版でないものでダウンロードして、エラーが出てきたので、
こちらで試してみたのですが、イメージがダウンロードできませんでした。
はじかれてしまったのかもしれません。。
Google 側からはじかれてそうですね。
IP アドレスではじいているようですので、同じ IP からでは、一日程度はダウンロードできなくなってしまいます。
固定 IP でない ADSL サービス等であれば、ADSL モデムを再起動して再接続することで IP アドレスが変更できればダウンロードできるようになると思います。
えーと、proxyサーバーかましてうまく行きそう。
pgmapなどご活躍期待しております!
プロキシサーバをはさむ事で IP アドレスが変わるのでダウンロードできるということですね。
ただ、プロキシ経由で Google からはじかれてしまうと、プロキシを使っている方全てが Google Maps を利用できなくなりますので、プロバイダのプロキシなど、多くの方が利用するプロキシで使用する場合などはご注意ください。
はじめまして。ありがたく使わせてもらってますのでお礼にと思い、
暫定ですが方法を記述しますね。
材料:xargs.exe
1.xargs.exe入手方法(導入済みの人は閲覧不要。2.へ)
1)cygwinのサイトからsetup.exeをdl
2)setup.exe起動後download Without installを選択し、後は次を連打。
3)select packegesの画面になったらviewボタンでfullに表示を変更
4)出てきたリストからpackage名称「findeutils」を探しその同項の”new”
をクリックし4.4でも4.3でも好きなほうを選択して次へ
5)ダウンロードが完了したら先ほど指定した場所にhttp%3~というフォルダが
出来るのでその中から「xargs.exe」を探し出しgm_litecygenvbinの中に入れる。
2.実施
1)down_imgs.batを選択、同じ場所にコピーし、コピーしたものを編集(hoge.bat等に名前を変えておく)
2)bat内の「dos2unix ../bin/down_imgs」を削除。
「bash ../」の../以降を削除し、編集後のbatファイルでcygwinを起動
3)「bash-3.2$」の文字が出てきたらその脇に「find /gm_lite/imgs/ -type f -name ‘*.png’ -size 0 | xargs -r rm」を打ち込んでエンター(「」は入力不要)
4)しばらくして再度「bash-3.2$」の文字が出てきたら削除終了です。
それでは。長文失礼しました。
find /gm_lite/imgs/ -type f -name “*.png” -size 0 -exec rm {} ;
でいけませんか?
そうですね。
0 Byte のファイルを消すのなら、find だけでもできますね。
GM_Lite のパッケージには find が入っていたと思いますので、find のパスと imgs のパスを合わせれば Windows 環境でもコマンドプロンプトから上記コマンドで消せると思います。
やはり 0 Byte ファイルが多いんでしょうかね。
ファイルが壊れる(ダウンロード途中で止まるとか)と言うことは少ないんでしょうか。
0Byteでない壊れたファイルが多いなら、ちゃんと PNG デコードできるかどうかをチェックするものを作るしかないかなと思っていたのですが。