• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Google Map Api 複数のマーカーをおくと、一部が表示されない)

Google Map Api 複数のマーカーを設置するスクリプトで一部が表示されない

このQ&Aのポイント
  • Google Map Apiで複数のマーカーを設置するスクリプトを組みましたが、一部が表示されずに問題が発生しています。
  • 表示されるマーカーと表示されないマーカーが混在しており、処理の速度やJSの処理の流れに問題があるのかもしれません。
  • すべてのマーカーが表示されるようにするためには、表示の前に適切な待ち時間を設けるか、ajaxを使用するなどの対策が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

それはおそらく geocoder.getLatLng() をループで連続してまわしているからです。 位置の取得に失敗しているため、マーカー表示できないのです。 無料サービスの方では、連続してジオコーディングできない仕様に なっています。レスポンスのステータスに620が返っているはずです。 ステータスが200(正常以外)の時は、時間を2~3秒待って、再度 コールするようなループにすればうまくいくはずです。 ステータスによるハンドリングが面倒ならpointがnullかどうかで判定できます。

参考URL:
http://code.google.com/intl/ja/apis/maps/documentation/services.html#Geocoding_Object
nyalio
質問者

お礼

(゜Д゜;)ガーーーーン 知りませんでした・・・。 DBに登録される時点でlat,lonにgetLatLngで変換して入れようと思います。 すっごい困ってたんです。 おかげさまで助かりました。 今すぐ変換スクリプト組んできます。 ありがとうございましたー。

その他の回答 (2)

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.3

連続回答してすみません。 GooglMap好きなもので.... マーカーが多量にある時の抜本的な対策ですが 位置情報は都度都度ジオコーディングするのでなく、 予め取得した結果をDB(javascriptでは無理)なり、XMLなり、 JSONなり、リテラル値で準備しておいて、そこから取得して マーカー作成し表示させるのです。 それでもマーカーが100個..-> 1000個になると、ブラウザーが ハング状態になります。 そんな時は、GMarkerManagerクラスを使って、マップスケール毎に 表示するマーカーを制御したりします。 それでも遅いなら、「Google Maps API for Flash」の方を使います。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

補足 待つのは2~3秒でなく、 0.2~0.3秒でもだいじょうぶそうです。(混み具合によります) 参考投稿(よそですが) http://groups.google.com/group/Google-Maps-API-Japan/browse_thread/thread/c3e2eee995280ae7

関連するQ&A

専門家に質問してみよう