dポイントプレゼントキャンペーン実施中!

MySQLに登録してある位置情報を元にGoogleマップに対してマーカーを表示させると言う事を行いたいと思っています。
表示させること自体は( https://developers.google.com/maps/articles/phps … )等を参考にPHPを介してXMLを出力し、それを使って行うことが出来ました。

ここから先の事について皆様のお知恵をお借りしたく思います。よろしくお願いします。

表示させたいマーカーが日本全国に現在数万件、今後20万件程度まで増えると予想しています。
全て一度に表示させる事は重さの面からも不可能でした。
一度に表示するマーカー数を500~1000程度に抑えることが現実的かと思うのですが、その数では日本全国と言う事もあり情報としてあまり意味が無い状態になってしまいます。
画面移動、ズームが発生した際に画面領域内のマーカーのみをその都度PHPを使ってMySQLから検索、表示とも思ったのですが、これではサーバーの負担が大きすぎる様に思います。

これを解決出来る様な方法・アイデアがございましたら、皆様に教えて頂きたく思います。
どうかよろしくお願いいたします。

A 回答 (2件)

Fusion TablesというGoogleのサービスと連携すると、大量のマーカーを描画するようなことに使えます。



サーバーからFusionTablesにデータを送って同期するようにします。

Googleのサーバー上で、マーカーのタイルがレンダリングされます。

Fusion TablesのデータはGoogle Maps APIにレイヤーとして取り込めるので、サーバーに負荷をかけないで使うことができます。

■ドキュメント
https://developers.google.com/maps/documentation …


■実際に使用している例
http://iai-dojo.jp/dojo/map/

------------------------------------

またはKMLをサーバーから出力する方法もあります。
Google Maps APIのKMLLayerを使えば、同様のことが可能です。
    • good
    • 0

>画面移動、ズームが発生した際に画面領域内のマーカーのみをその都度PHPを使ってMySQLから検索、表示とも思ったのですが、これではサーバーの負担が大きすぎる様に思います。



現状ではこれしかないように思いますが……。ただ、ちょっとスクロールして動かしただけで再検索、とまではしなくていいと思います。

例えばですが、表示領域プラスアルファ(表示領域を中心として縦横にプラス1画面分ぐらい)の範囲内で検索をして、現在の位置から1画面分以上スクロールしたら検索し直す、というような感じになるんじゃないでしょうか。実際、試してないただの想像ですみませんが……。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!