GoogleMaps APIを利用して、緯度と経度の入ったデータベースが更新されるたびに自動的にその座標を中心に持っていくようなシステムを構築したいと考えています。

リアルタイムでGoogleMapsが動く感じです。イメージとしては、こんな感じです。
http://jp.admob.com/s/home/live

すぐに作成したいので、サンプルコードがあるサイトを教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/08/26 14:02:34
  • 終了:2008/09/02 14:05:02

回答(1件)

id:m_nagase No.1

nagase回答回数58ベストアンサー獲得回数82008/08/27 11:20:35

ポイント60pt

回答が付かないようなので。


Google Map API - Googleの公式サイト

http://code.google.com/apis/maps/documentation/index.html


Geekなページ : Google MAPS APIプログラミング - 少し古い内容も含まれていますが、基本的なことは把握できると思います

http://www.geekpage.jp/web/google-maps-api/


ユーザーページにGoogleマップを組み込む方法、javascriptでのmapオブジェクトの初期化などの説明は省きます。

地図の中心座標を設定するには、mapオブジェクトの SetCenter(座標オブジェクト,ズーム倍率) 関数を使います。

座標オブジェクトは new GLatLang(緯度,経度) で生成、ズーム倍率は 1~17 (低倍率→高倍率:モードや場所によって有効倍率が異なる) で指定します。

var map = new GMap2(document.getElementById("map_canvas"));
var point = new GLatLang(141.3507, 43.0686);  // pointに座標オブジェクトを格納
map.SetCenter(point, 14);

スクロールさせながら移動するには panTo(座標オブジェクト) 関数を使います。

map.panTo(new GLatLang(139.7660, 35.6815));  // 座標を使い回さないのならこのような記述も可

このようにすれば、地図中心を目的の座標にすることができます。

あとは、AJAXなどの技術を使って、サーバーから一定間隔でデータベースを取得し、地図を更新すればいいわけです。

リアルタイム性を重視するなら Comet のような疑似サーバープッシュの手法もあります。


簡単実装で学ぶWeb技術 : TIpro

http://itpro.nikkeibp.co.jp/article/COLUMN/20080125/291977/?ST=d...


何れの方法も、クライアント側からの要求に対するサーバー側での処理の記述が必要となります。

  • id:serimaryo
    回答ありがとうございました!
    レスが遅くなってしまってごめんなさい><

    どちらかというとそっち側の処理は分かったのですが、プッシュ型通信を実現するためにどうしたらいいのかなーって悩んでました。
    Cometを使わないとやっぱりそういうのってできないんですかねぇ。。
    Comet関連でいい資料があったら教えてもらえると嬉しいです!

    あとは、定期的にデータを読みに行くっていう手はあるんですが、それだとちょっとリアルタイム性に欠けるなぁと思っています。

    兎にも角にもありがとうございました。
  • id:m_nagase
    http://www.atmarkit.co.jp/fjava/column/andoh/andoh38.html
    ここに主なサーバープッシュ技術の一覧があります。やはりjavascriptだけでは無理があるためflashやjavaとの組み合わせになるようです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません