Google MAP API V2 に繋がらない。

モジュールGnaviD3

 状態:  閲覧数:961  投稿日:2010-11-09  更新日:
ワケ分かんない。
  
この前は、amazon APIが変なことになってて、
今度は、Google MAP API なの? って感じ。

これまで、マップ部分が表示されなかったことなんて、
一度もなかったんだけどな…。

Twitterで検索しても、Webで検索しても、
何も情報が見つからないし、もしかして、オレだけ?

それにしても、APIって、ホントにメンドクサイね。こういうとき。

ただで、利用してるんだから、それぐらい我慢しろよって、話なのかもしれんが、

でも、こういう事態に陥ると、改めてよくわかるよ、

所詮、人の褌で相撲取ってんだってことに。


自前でデータ、持つことをマジで検討せねば…。



3:58 追記。
なんか色々まずい感じ。

まず、V2うんぬんだが、
どうもそういうことではないらしい。

GnaviD3の公式サイトでも、地図は表示されてるし、
単純なV2 APIサイトでも、
地図は普通に表示されている。

正直、障害なら障害で、
待つしかないじゃんよ、いう結論になるのだが、
Google側の障害じゃなくて、
GnaviD3側の問題でもないとすると、
考えられるのは、
アカウントが狙い打ちされた、とのこと。

で、今、利用制限みたいなのを調べてるんだけど、
一日1,000件だっけ?
とても、そんなの超えてるとは思えないんだけど…、。

何やったんだ? オレ…。



5:30 追記。
APIキー取り直したりしたけど、ダメ。
Gnaviの最新バージョンとか探したけど、当然リリースとかされてないし…。
どうやら、他力本願もいい加減限界らしい。
しょうがないので、調べてみることにする。
てか、他にもう打つ手がない。

まずは、何を置いても、地図が全く表示されずに該当部分が真っ白になってるのが問題なので、原因を探る。
XOOPS_TRUST_PATH/modules/gnavi/main/map.php
・30行目 $latlng = address2latlng($query);
var_dump($latlng);してみる。
bool(false)
いきなりエラーかよ。

この部分で合ってるかすら分からないが、bool(false) ってのは、どうなのよ?



5:50 追記。
デバッグのやり方もよく分からないなァー。
やっぱローカル環境構築するしかないのかなァーと思っていたところ、
藁にもすがる思いで別のサイトみたら、なんとGnaviD3で、マップが普通に表示されている。
別のサイトのGnaviD3開いても、やっぱりマップは普通に表示されている。
もしかして、と思い幾つかのサイトを開いてみたら、やっぱりマップが表示されてない。
まだ、確認している途中だが、明らかに、狙い打ちされている感はある。
今回、地図が真っ白になってるのは、明らかに最近、Google検索結果から、消えたサイト。
だけど、ここがポイントで、全く消えたかというとそうではなくて、
一応、site:URLを叩くと、表示はされている。

でも、体感としては、かなり強烈なペナルティ食らった感はある。
ある日、いきなり約10件近いサイトがいきなり、検索結果から、消えて、
しばらくしてやっと表示されるようになったと思ったら、
また、表示されなくなった。

で、今回、地図が表示されてないのは、すべて、その約10件近いサイトなんだよ、コレ。

で、さらに問題なのが、例えペナルティ食らってるとしても、
実際、食らってるかどうかも分からないし、
その内容どころか事実判断すらできないので、
対策のしようがない。

ウェブマスターツールにも何の連絡もないし、
アドセンスにだって、何の通知もない。

どうすんのよ? これ?

今、6:00。
朝のだよ!

もう3時間も、この無駄な時間を費やしてるのに、
全然、解決しない。

次、調べるのは、何だ?

Googleペナルティか…。

確か以前、最も重いペナルティは、
Google検索結果から削除、で、
ペナルティの中には、半年ぐらい回復しない、とか
なんか読んだような記憶もあるが、
でも、
GoogleMAP APIが使えなくなるようなペナルティなんて、
聞いたことがないよ。

やっぱ、単なる気のせいなのかな?



6:18追記
違った。
ペナルティ食らった(?)と思われる約10件の内でも、
マップ表示されてるのと、されてないのとがある。
なんだこれ?

とりあえず、現状再確認&頭の中整理する意味でも、メモが必要っぽい。

・サイトSH…○
・サイトMI…×
・サイトGI…×
・サイトMA…×
・サイトAZ…○
・サイトRO…○
・サイトSI…○
・サイトSH…×
・サイトEB…×
・サイトBA…×
・サイトHO…○
・サイトGU…×
・サイトTA…○
・サイトTA…○
・サイトRA…○

途中で仮説が出来た。
っていうか多分間違いない。
正常に地図が表示されているサイトは、逆アクセスも人気ページも設置していないサイトだ。
但し、逆アクセスも人気ページも設置したのは今日じゃない。
なんで今頃地図が表示されなくなってのかはさっぱり不明だ。
いや、昨日、触りはしたか…。
でも、そんな大した変更はしてないはずなのだが…。



6:36追記
地図が表示されていないサイトについて、「逆アクセス」「人気ページ」の観点からもう少し調べてみる、
・サイトMI…×→○○
・サイトGI…×→○○
・サイトMA…×→○○
・サイトSH…×→○○
・サイトEB…×→○○
・サイトBA…×→○○
・サイトGU…×→○×
うーん、思ったより、バラツキがなかった。
もっと、「逆アクセス」だけとか、「人気ページ」だけとか設置しているサイトあるかと思ったけど、案外両方設置しているサイト多いんだな…と。

で、これだけ見れば、サイトGUの結果より、犯人は「人気ページ」ってことになるんだけど、そんな単純じゃないでしょうよ。
だって、サイトGUのエラーは、prototypeのエラーになってて、何か今回のとは違うっぽいし。

それに、…、まあ、いいか、これから調べてみたらすぐに分かるよ、多分。

実際に外して、調べてみればいいんでしょ? 地図が表示されるかどうかを、さ。



6:55追記
「人気ページ」が犯人だった。
外したら、地図が表示された。
しかし、どんだけバカなんだよ、オレって。
障害がどうかとか、ペナルティがどうかとか。
小一時間自分を問い詰めたい、
てか、本当は問い詰めたくなんかないけど…。

で、問題は、なんでいきなり、「人気ページ」で地図が表示されなくなったか、だ。
今、思い出したよ。
そう言えば、「人気ページのタイトル重複部分を削除する」のに、javascriptで、正規表現使った気がする。
あれが原因なのか?
とりあえず、元に戻してみることにする。



7:04追記
「人気ページ」スクリプト部分、元に戻しても地図は表示されない。
なんで?
そもそも、人気ページ設置したのは、今日じゃないのに…。
なんで、地図表示されなくなったんだ?
初めから動作してなけりゃ諦めもつくけど、これまで動作してたのが、ある日いきなり動作しなくなったってのは、なかなか諦められない。



7:10追記
も一つ思い出した。
そう言えば、「人気ページ」スクリプト部分、行毎の色分けで、クラス追加した。
これも元に戻してみるか…。
しかし、もし、これが使えないとなると、それはそれで痛いな…。



7:15追記
どうやら、原因は、「人気ページ」スクリプト部分にて、行毎に色分けるために、追加したクラスに問題があったらしい。
元に戻したところ、地図も無事表示されるようになった。
また、「人気ページのタイトル重複部分を削除する」は、そのままイキにしたけど、問題なかった。



7:36追記
どうやら、window.onloadを複数設置したことによるエラーっぽい。
GnaviD3のwindow.onloadは、どこにあるの?
これかな?
main\map.php(221): window.onload = ShowGMap;

ん? 何かいっぱいあるな…。
admin\category.php(375): window.onload = InputGMap;
main\item.php(124): window.onload = ShowItemGMap;
main\submit.php(818): window.onload = InputGMap;

処理ごとに分かれてるのかな?

うーん、分からんな…。


「人気ページ」のクラスを追加するのに、window.onloadじゃなくて、
何か違う書き方をした方が早そうだな…。



9:10追記
結局、下記サイトを参考にして、無事解決した。
▽window.onloadは2度使えない。 | ダリの雑記:WEBプログラム版
  http://www.nandani.sakura.ne.jp/web_all/javascript/1235/


あー、しかし、もの凄い疲れた…。
こういうのをなんて言うのだろうか?
一人相撲?
日ごろの行いがよくないから?
プログラムが分かってない?
あー、もう9:12だよ。
眠いような、眠いような、でも
今からじゃあんまり寝れないような…。
体内時計とか、完璧壊れたね、今日は…。



<hr />
▼2011.11.5追記
○原因 … GnaviD3で、window.onloadを利用しているため
○対策(案) …
・GnaviD3を、addEventListenerに書き換える(やり方不明)
・GnaviD3に、body onloadを書かない
トップページのみに、body onloadを適用させた例
&lt;{if ($xoops_requesturi == '/index.php' or $xoops_requesturi == '/')}&gt;
&lt;body onload=&quot;load();&quot;&gt;
&lt;{else}&gt;
&lt;body&gt;
&lt;{/if}&gt;


jQueryプラグインを導入したら、GnaviD3でエラー

GnaviD3とjQuery共存