Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/usaken/tekmemo.com/public_html/php/wp-content/plugins/ultimate_ga_1.6.0.php on line 524

ドコモでGoogle Static Mapsが時々表示されない

2009/10/21 | ケータイ

Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/usaken/tekmemo.com/public_html/php/wp-content/plugins/ultimate_ga_1.6.0.php on line 524

表題のとおり、ドコモで携帯サイトに埋め込んだGoogle Static Mapsが時々表示されないという、個人的にはとても深刻な事態に陥っていた(ついさっきまで)。その原因が、今やっとわかった。他にも同じことで悩んでいる人がいるかもしれないので、メモしておく。

ウェブで調べると「アクセス数の制限にひっかかってエラー画像が表示される」というのが多数を占めていた。今回のドコモでの検証の場合はエラー画像ではなく、リンク切れなどの際に表示される[x]が表示されてしまっていた。そして不思議なことに再読み込みを繰り返しているといつしか読み込めるようになり、一度読み込めるとその後は大丈夫になる、というなんとも奇妙な現象だ。

原因を知りたくて、ドコモで数十回アクセスしてみた。IPの制限かも、と思い、エラー時と正常時のIPアドレスなんかも記録してみた。しかしいったんエラーが出ていたにもかかわらず、別の地図を呼び出した際は正常表示される、といったことがわかった。つまりイレギュラー。エラーが出た場合に、直接画像にアクセスしてみたりもした。そうすると文字化けテキストが列挙された(何らかのエラーなんだと推測できる)。

そして調べてわかったこと。必要なパラメータが指定されていなかった。そのパラメータは「sensor」。マニュアルを熟読すると、このパラメータはGPS等のセンサーを使用していて位置出ししたときはtrueを値とし、センサーを使用しなかった場合はfalseを値として持たせる、しかも必須、と書かれている。おそらくGoogleにとって、物理的には何の確証も必要性もないデータではあるが、とにかく必須ということらしい。

今まではsensorの意味がわからなかったので(マニュアルをしっかり読んでいなかっただけなんですけど)、必要性も感じず使っていなかった。でもって、エラー頻発のところにこのパラメータを付け加えてみたところ、うそのようにちゃんと表示されるようになった!。秀樹感激!(古い)。たったこれだけのことに数ヶ月悩んでいたのかと思うと少し悲しいけど、ようやくすっきりした。

ちなみにドコモで表示された文字化けメッセージ(画像を直接ブラウザで呼び出す)では、最初に「臼NG」とかいてあった。「多分NGなんだろう」という意味だと思っていたけれど違った。最初の部分が文字化けしていて、(1byte)PNGらしい。つまりPNGのエラー画像が返されていたのだけれど、ドコモの端末ではPNGが読めなかったので、リンク切れのような形で表示されていたのだった(そんなに古い機種じゃないんだけど)。

教訓:マニュアルはちゃんと読みましょう。

コメントを残す



Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/usaken/tekmemo.com/public_html/php/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net

Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/usaken/tekmemo.com/public_html/php/wp-content/plugins/ultimate_ga_1.6.0.php on line 524