現在、携帯のGPSを使って位置情報をデータベースに格納。
そのデータベースを使って、準備したサイトにGoogleMapを表示。(マーカーとして。
ということをやっています。
簡単な流れとしては、
携帯からGPS(PHP)→データベース(SQLite)→データベースアクセス(PHP)→JSON→Javascript→GoogleMap表
示
という感じです。
それで質問なのですが、今やりたいこととして、携帯からデータベースに位置情報送られたら、リアルタイムにGoogleMapにマーカーを表示したいと
思っています。
画面更新無しに、サイトを開いていると、どんどん最新のデータがマッピングされて表示される感じです。
#TwitterVisionのようなイメージ。 - http://twittervision.com/
これはAjaxなのかなと思うのですが、そうなると、JSONではなく、PHPでデータベースから取ってくる際に、PHPでXML形式にタグ付けして
XMLとして利用する必要があるのかなとかとりあえず思ったりするのですが、どのようにやれば実現可能でしょうか?
アドバイスお願いいたします。
On 10月4日, 午後2:56, yukix <yuk...@gmail.com> wrote:
> これはAjaxなのかなと思うのですが、そうなると、JSONではなく、PHPでデータベースから取ってくる際に、PHPでXML形式にタグ付けして
> XMLとして利用する必要があるのかなとかとりあえず思ったりするのですが、どのようにやれば実現可能でしょうか?
多分仰るとおりAjaxによる物と思います。
ここでJSONかXMLかは、Ajaxでやり取りされるデータ・フォーマットの問題なので、どちらでも使いやすいフォーマットを使えばよいです。
では、どうリアルタイムで反映させるかですが、データベースを定期的に調べて反映させる方法が簡単だです。ほんとのリアルタイムにデータを受け取るに
は、cometという技術を使います。
> ここでJSONかXMLかは、Ajaxでやり取りされるデータ・フォーマットの問題なので、どちらでも使いやすいフォーマットを使えばよいです。
なるほど。
データベースからとってきたデータをGoogle Mapに表示する際にはXML化が必要なんでしょうか?(GXmlHttp利用のために。
> では、どうリアルタイムで反映させるかですが、データベースを定期的に調べて反映させる方法が簡単だです。ほんとのリアルタイムにデータを受け取るに
> は、cometという技術を使います。
確かに仰るとおり、定期的に調べて反映するのが簡単そうですね。
cometというのをまったく知らなかったのでちょっと調べてみたのですが、無駄な読み込みもなく確かによりリアルタイムにデータを受け取れそうでし
た。
こちらも検討してみます。
On 10月8日, 午前2:03, yukix <yuk...@gmail.com> wrote:
> データベースからとってきたデータをGoogle Mapに表示する際にはXML化が必要なんでしょうか?(GXmlHttp利用のために。
必要ありません。GoogleMapsに表示させるためには、XMLでは無くJavaScriptのオブジェクトにする必要があります。XMLは、サー
バとブラウザー間の通信のみに使われると考えてかまいません。
XMLが便利なのは、GXmlHttpでデータを取得し、GXmlHttp.responseXMLで簡単にJavaScriptオブジェクトに変換で
きるからです。JSONの場合は、GXmlHttp.responseTextでテキストデータとして一度取得し、それをJavaScriptの
eval関数によってJavaScriptオブジェクトに変換する手間がかかります。
物は試しで、サーバと通信をしないでJavaScript埋め込みのデータを使ってGoogleMapsを表示するサンプルプログラムを書いてみるの
が、理解への近道だと思います。
頑張ってください。
> 物は試しで、サーバと通信をしないでJavaScript埋め込みのデータを使ってGoogleMapsを表示するサンプルプログラムを書いてみるの
> が、理解への近道だと思います。
GXmlHttpでのXML、JSON云々に関しては、いろいろと試してみて理解できました。
それで、実際にやろうとしていることでいろいろと試してみたのですが、ちょっと躓いてしまいました。
データベースに定期的にアクセスして最新をとってきて、GoogleMapに表示するという流れでのところなのですが、
データベースにアクセスしてとってくるのは、現在PHPで行っています。
これを「定期的」に行い、さらに「定期的」にJavaScriptに渡して表示する方法がわからなくて止まっています。
JavaScriptでは、setIntervalがあるので、それで繰り返して関数を実行できますが、PHPでのデータベースアクセスはどうやればい
いか。。。という具合です。
JavaScriptの中でPHPが実行できて、そこで得た変数をJavaScriptに渡せればいいのですが。
cronとかになってしまうのですかね。
GogleMapAPIとは直に関係しないことであれですが、差し支えなければご教示お願いします。
GoogleMapを表示するJavaScriptにおいて、
1.XMLHttpRequestオブジェクトを生成し、open()、send()でデータベースに接続するPHPを実行。
2.PHPでは、データベースに接続して最新データを取得。そのデータをJSONとかにして、それをecho。
3.onload()でechoしたデータを読んで、そこからマーカーを作ってGoogleMapに表示。
この1~3を、setIntervalで繰り返せば良いのかなと思いました。
凄まじく見当違いだったらお恥ずかしいのですが、とりあえず近いうちにこんな感じで試してみようと思います。