- ベストアンサー
Google Map APIで複数マーカーを表示する方法
- Google Map APIを使用して複数のマーカーを表示する方法について説明します。
- 初心者の方でも簡単に実装できる方法です。
- 10個以上のマーカーを表示する場合、いくつかの制約がありますが、解決方法も紹介します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ご提示のコードはV2のものだと思いますが、現在google map APIはV3に移行しているようですので、これから作成なさるのならV3を利用した方がよろしいかと。(keyも不要になったみたいですし) (↓)に「V2はGoogle の廃止ポリシーにより正式に廃止されました」の記載があります。 http://code.google.com/intl/ja/apis/maps/documentation/javascript/ >10個以上あるとマップ上に表示されないようです。 V3で簡単な実験をしてみましたが、連続的にジオコードサービスにリクエストすると、10回目くらいから「OVER_QUERY_LIMIT」となってしまうようです。 (V2で同じことになるのかは確認してませんが、似たような制限があるのではと推測) 時間当たりのアクセス数制限がかけてあるのか(そのあたりは解説されてないみたいですが)、ウェブサービスの方には2500件/日のような制限についての情報が記されているようです。 http://code.google.com/intl/ja/apis/maps/documentation/geocoding/index.html 簡単にテストしてみたところ、連続だと11件程度、約0.5秒おきのリクエストで20件程度、0.8秒おきだと50件程度でリミットになるようです。 1秒おきにしてみたらば100件まではクリアできましたが、これだけで100秒以上の時間がかかってしまうので、何秒かおきに10件ずつまとめてリクエストをした方が結果的に早いのかもしれません。(これ以上は試してしませんので不明です) とはいうものの、ご質問の内容からすると表示する毎にジオコーディングする必要はなさそうなので(仮に連続で可能だとしても時間がかかる要因となる)、#1様の回答の例にもあるように、表示するデータは事前にまとめてLatLngデータに変換しておいた方がよろしいかと思われます。 (データの追加があるときは、追加の際にLatLngを取得してデータに加えておく) そうすることで、表示する際にはジオコーディングが不要となりリミットを気にする必要はなくなりますし、当然ながら処理全体の効率もよくなると考えられます。 >何か方法はないでしょうか どうしてもこのままで行ないたいのであれば、上記のようにリクエストの間隔を置いて、10件ずつまとめて行なうとかのような方法になろうかと…(200件程度だと、どのようにするのが一番速いのかは不明)
その他の回答 (1)
- kosukejlampnet
- ベストアンサー率44% (126/282)
手前味噌ですが http://map.jlamp.net
お礼
ご回答ありがとうございます。 すいません、、 知識が乏しく、あまりよくわかっていないのですが、 住所や吹き出しに表示させたい情報は、 どこに入れるもんなのでしょうか・・