- 締切済み
GoogleMapsで、表示されている地図範囲のマーカーのみを表示させたい
DB(MySQL)に格納された位置データ(名称・緯度・経度)を、PHPのループ処理で取得し、GoogleMapsに表示させる仕組みを作っています。 DBのデータ数が少ないうちはいいのですが、多くなってくると、全てを表示させるには処理の時間と負荷がかかりそうです。 そこで、今表示している地図範囲に含まれるデータのみを画面表示させたいのですが、どのようにすればいいのでしょうか? getBoundsで現在の地図範囲を取得したり、if+containsで範囲に含まれるかどうかを判断したりすることはわかりました。 ただし、これらはJavaScriptなので、PHPで取得した位置データを直接やり取りすることができないと思います。 PHPからJavaScriptのコードとして、全データを書き出し、それを処理することも考えましたが、位置データがソース上で丸見えになることも避けたいですし、吐き出すソースが膨大な量になるので現実的ではないと思ってあきらめました。 PHP→XML→JavaScriptという手段も考えたのですが、XMLの知識がないため具体的にどうすればいいのかわからず、こちらもあきらめました。 理想は、JavaScriptでDBデータを取得できればいいのですが、JavaScriptに関しても知識がないのでわかりません。 この件に関して、詳しく説明があるサイトもしくは○○の△△を使えばいいよ、みたいなアドバイスをいただければ嬉しいです。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- fire--
- ベストアンサー率49% (146/293)
やり方はいろいろあると思います。 ひとつのやり方として、javascriptで取り出した範囲を formに渡してやれば、phpに渡すことができます。 以下urlの画面右の小さい地図で範囲指定をして、検索ボタンを押すと 動作します。 http://www.asobox.com/kaze/modules/kantanmap/?kw=&num=10&seq=new&p=&ktmap_id=00000000&mode=sidelist&ram=139.1748046875x36.20882309283712x7x138.076171875x140.2734375x35.31736632923787x37.09023980307208&ram_mode=ON ソースを見れば、中身が判ります。scriptの本体は外部から取り込んでいるので必要であれば、そのurlからみることもできます。
お礼
ご回答ありがとうございます。 検索ボタンのonClick以下をたどってみましたが、複雑すぎて理解できませんでした。orz