GoogleMaps の制限回避 (GM_Lite)

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 と同じです。

関連した記事:


16 comments

  1. 地名は未確認ですが、0バイトファイルはできなくなりました。ありがとうございます。
    GPSで現在地の表示機能を気長に待っておりますので、よろしくお願いします。

    • 更新しないとなと思いつつ、あまり進んでなくてすいません (^^;
      次は大幅な改良は無く、マイナーチェンジの予定です。
      次回実装予定(既に一部実装済み)の機能は以下の2つです。

       ・ダブルタップでセンタリング機能 (sugarware様のご要望)
       ・ガンマ補正 (青嵐様のご要望)

      GPS は調査と検討を行ってますが、別スレッドを立てる必要があったりと、ちょっと気合と時間が必要そうなので、次回リリースへの実装は見送りました。

      もうしばらくお待ちください m(v_v)m

  2. GM_Liteのことをここで質問するのはどうかとも思いますが、
    down_imgs.plを入れ替えてのことなのでここで質問させて下さい。

    down_imgs.plを入れ替えて試してみました。
    初めの内は順調だったのですが、mapの倍率が7になって少した辺りで

    open2: IO::Pipe: Can’t spawn-NOWAIT: Resource temporarily unavailable at ..\bin\down_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 ..\bin\down_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 は影響していないと思います。

            エラーの原因はまだよく分からないのですが、エラーが出た後に復旧することはできると思いますので、エラー後の処理を行うように修正してみます。
            少々お待ちください。

  3. 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 ..\bin\down_imgs.pl line 71

        解決していただけると幸いです。

        • ブラウザは Google Mapsの地図は正常に表示されました。
          (0byteのpngしかダウンロードできない場所が、ブラウザでは正常に表示されることを確認しました)

          • はじめまして、Matsu様。
            再度確認してみましたところ、Matsu 様がおっしゃるとおり、特定のファイルが 0 Byte になってしまう現象が確認できました。
            何度やっても同じ座標の地図がダウンロードできないようですね。

            スクリプトを修正したところ、正常にダウンロードできるようになったので新しいブログエントリで公開します。お試しください。

          • 早速に対応くださり、ありがとうございます。
            期待しております。

          • ブログを投稿したつもりだったのですが、「公開」設定し忘れてました ^^;
            公開しましたのでお試しください。

コメントを残す

メールアドレスが公開されることはありません。


*