Twitterの位置情報付きつぶやきを世界地図にブロット2

カテゴリー:位置情報・GPS・地図(記事数:262)



↑B


2010.08.01

Twitterの位置情報付きつぶやきを世界地図にブロット2

前作に引き続き色々と改良。コードは直リンクのソースから見える。どうやってもロシアの数値地図がうまく扱えないのでgoogle mapsに移行。


  • 現在、6万アカウント調べて世界中の1200名ほど位置情報付き書き込みをしている人を検出したところ。
  • Google map API version3を使ってみました。ver.2から大きく仕様が変わっており苦労した。orz
  • スクロールするたびに1000人分のデータを読み込んでいるので重たいです。後ほど改良予定
  • あまり詳細な位置を望まない人もいるだろうから、地図の拡大倍率を制限。参考にしたのはこのサイト
以下、google map apiに関するメモ
  • 必要なデータファイルだけを読み込むように後ほど改良予定なので、スクロールのたびにデータファイルを読み直しています。ポイントが表示範囲内かどうかの判別にmap.getBounds()を使用しているのですが、このメソッドの取得可能なタイミングが難しい。表示終了後、少しラグがあってから値が設定されるようなのですが、その遅れ具合がまちまち。そのくせ、bounds_changedイベントはドラッグ中にも定期的に起きたりする。今回のプログラムではbound_changedイベントでgetBounds()だけして表示範囲をグローバル変数areaに保存し、マーカーの書き直しは「dragend」イベントと「zoom_changed」イベント後に1000ミリ秒遅れで実施、試行錯誤の結果だけど今のところ動いている。まだ謎なところあり。(getBoundsの挙動について議論している掲示板の記事))
  • addMarker()の中でcreateMarker()を作っているが、このように分けないとinfoWindowsとmarkerの関連付けがうまくいかない。ループの中ですべて「marker」というオブジェクトで処理しているが、InfoWindowを作る時に最後に定義された「marker」を参照するみたい。どうも変数(オブジェクトって言うのか?)のスコープがどうなっているのか分からない。あぁ難しい。
  • もしかしてマーカー作り直すたびにInfoWindowのオブジェクト消去しなきゃダメかな?とりあえず動いているからいいや。
  • 表示範囲のみのマーカーオブジェクトを作成することに関して参考にしたサイト
  • google_maps_API_v3リファレンス(英語)(非公式日本語)

Category:位置情報・GPS・地図



コメント

いいっすね!=4
001 [08.01 13:52]あっ:いつの間にFaviconが・・・ (1)
002 [08.01 14:42]ふぇちゅいんさんふぁん★26:google buzz でいいじゃん? windows mobileでも利用できるし。ふぇちゅいんさん、ハイブリもってるし。 (1)

名前 ↑B

コメント(※改行は省略されます)

※3回以上の連続書き込み不可
この記事のアクセス数:


→カテゴリー:位置情報・GPS・地図(記事数:262)
アクセス数の多い記事(過去1ヶ月)

すべて見る

この地図の作成に当たっては、国土地理院長の承認を得て、同院発行の基盤地図情報を使用した。(承認番号 平22業使、第40号)