[GPSとウエブサービス]10日目: ウエブサービスをつくる その6(JavaScript解説)

| | トラックバック(9)

もう10日目になってしまいました... 今回は前回貼付けたJavaScriptを解説したいと思います。
JavaScriptは基本的なザックリ言うとは2つのクラスとそれを呼ぶ部分で構成されています
2つのクラスはそれぞれ

GoogleMapを操作するクラス(GoogleMapControl)
GPS経路情報を管理/操作するクラス(RouteControl)

です。まずは GoogleMapControlクラスを解説します。
JavaScriptでクラスを作る方法はいくつかあるようですが、このソースでは
function GoogleMapControl(id, init_lat, init_lng) {
(ここにコンストラクタ的な処理を記述する)
}
GoogleMapControl.prototype.HOGEHOGE = function() {
(ここにHOGEHOGEメソッドに関する処理を記述する)
}
インスタンス化は
var objMap = new GoogleMapControl('map', init_lat, init_lng);

のように行う形で記述しています。

GoogleMapControlクラス(004-086行目)は何を行うクラスかを解説します。
コンストラクタでGoogleMapのSetupを行う。ピンアイコン(2種類)もメンバ変数として
Setupしておく。
メソッドは以下の関数を設置

addUserPoint: Userの現在地点を1点プロット
addGPSPoint : GPS軌跡ポイントの1点プロット

showUsers : ユーザの最新位置リスト(APIの戻りJSON形式をそのまま)を引数にその各点をaddUserを用いてプロット
showRoute : GPS軌跡リスト(同じくJSON形式)を引数にその各点をaddGPSPlotを用いてプロット

panTo : 指定座標にMap中心を合わせる
ClearOverlays : 全プロットをClear


以上のようなGoogleを操作するクラスを定義します。
このようにGoogleMapを使うときはその操作をクラスでまとめた方が便利ですからお勧めデス。

では次にRouteControl(091-122)について解説します。
このクラスは各ユーザのGPS経路情報が出力される際にコンストラクトされます。
Web画面上に Next | Prev の経路操作ができるナビゲーションが表示されますが、
今の中心位置を管理し、次のpointや前pointを操作して取り出す機能を持っています。

コンストラクト時は各変数初期化しメンバ変数にAPIから取得した経路情報をセットします。
メソッドには次の関数を持ちます

setPosition : GoogleMapのpanTo関数を用いて地図画面の中心位置を合わせるとともに情報エリアをSetします
next : 次の点に移動します
prec : 前の点に移動します
clear : 経路情報をクリアします

次にメインの部分ですが、ここは簡単です。
init 関数が HTMLのonload時に呼ばれます。
ここではGmapControlをインスタンス化しGoogleMapの画面初期出力を行います
次にgetRecentUsersという関数を読んで利用者の最終GPS捕捉位置をプロットします。
この関数は prototype.js Ajaxクラスを利用しています。このクラスの使い方は
たくさんのHPに書いてありますから割愛します。

各ユーザのpointをプロットした後、そのプロット点にはonClickのイベントが
GoogleMapControlクラス内で既に割り当てられており(053-055行目)クリックする
ことでgetUserGPS関数が呼ばれます。ここもほとんど上と同じで Ajaxクラスで
APIを呼び出しています。

細かい部分はソース読んでもらばと思います

以上でJavaScriptの部分も解説しました。以上すべてを組み合わせると

http://hiyuzawa.jpn.org/mob/at_gps/

このようなサイトが出来上がります。

いかがでしたか? 10回で解説しましたが、最後はかなり、雑な説明でしたけど
一通り理解して頂けたと思います。

またいろんなサービスを作ると思いますが、面白いものはこのように解説してみたいと思います。
では、ご覧いただき有り難うございました。

  1. AU携帯電話でGPSトラッキングなウエブサービス
  2. 1日目: AU携帯電話をGPS機器する その1
  3. 2日目: AU携帯電話をGPS機器する その2
  4. 3日目: AU携帯電話をGPS機器する その3 (DB設計)
  5. 4日目: AU携帯電話をGPS機器する その4 (PHP/DBクラス)
  6. 5日目: ウエブサービスをつくる その1 (設計)
  7. 6日目: ウエブサービスをつくる その2 (PHP-DBクラスの拡張)
  8. 7日目: ウエブサービスをつくる その3(APIの開発)
  9. 8日目: ウエブサービスをつくる その4(ウエブ部分)
  10. 9日目: ウエブサービスをつくる その5(ウエブ[js]
  11. 10日目: ウエブサービスをつくる その6(JavaScript解説)


トラックバック(9)

このブログ記事を参照しているブログ一覧: [GPSとウエブサービス]10日目: ウエブサービスをつくる その6(JavaScript解説)

このブログ記事に対するトラックバックURL: http://hiyuzawa.jpn.org/MT-4.0-ja/mt-tb.cgi/20

AU-GPS with Gmap AU携帯電話をGPSとして利用.GoogleMapで行動を表示.製作記録まとめ中!! 開発元のブログにはサービスをつくる... 続きを読む

» 20 free porn clips(20 free porn clips)~のトラックバック
» bikini models boobs tits pussy(bikini models boobs tits pussy)~のトラックバック
» hardcore erotic sex stories(hardcore erotic sex stories)~のトラックバック
» older pussy galleries(older pussy galleries)~のトラックバック
» xxx asian pussy(xxx asian pussy)~のトラックバック
» Cayden(Cayden)~のトラックバック

since suffering abuse abandonment and neglect from our head of household, my ... 続きを読む

» Jacob(Jacob)~のトラックバック

Johan de Nysschen, head of Audi of America, gave a detailed outlook intor Aud... 続きを読む

» Jacob(Jacob)~のトラックバック

Johan de Nysschen, head of Audi of America, gave a detailed outlook intor Aud... 続きを読む


■MapPepper

HotPepperAPIとGoogle/YahooMapAPIと連動させたアプリ。

■FlashImageSearch

flashで見る画像検索。アイドルデータベースと連動。

■FindJob転職情報メール一気読み

FindJobから定期的に送られてくる転職情報メールを一気に確認するためのTool。

■新着pickup

Yahoo!の新着ピックアップサイトをサムネイル付きで表示。自動更新。

■AU-GPS with Gmap

AU携帯電話をGPSとして利用.GoogleMapで行動を表示.製作記録まとめ中!!

■finding_yado

じゃらんAPIを使った宿探しサイト.リクルートMashupコンテスト応募作品

■オークション商品分析Tool

Y!オクAPIを使って多角的に商品を表示。Flashにて

■Yahoo!Directory with History

FlashでY!カテゴリをブラウズ.登録日時も合わせてビジアル表示.

■Okiny-Flash-Search

Yahoo!検索APIを用いてflash上で検索.ソフトウエアキーボドや検索語Suggest,人気語なども表示.

■Okiny-Search

YahooUILibraryのEffectとYahoo!検索APIを組み合わせた面白い検索結果の表示方法を体験.

■Quick-Dictonary

firefoxのGrasemonkeyを使ってウエブ上の単語(英語/日本語)を簡単に単語翻訳

■サーバサイドブックマーク

環境やブラウザに問わずどこでも自分のブックマークがみれるTool. タグによる保存も..本人はてぶ使ってますorz...

■myweb-bookmark/search

ウエブ/画像/Q&A/Amazon/Blogみんな一度に検索しちゃいます

■myweb-bookmark

ウエブ/Q&A/Amazon/BlogみんなでブックマークしちゃうTool.


--形にまだなってないやつ--
■地域スポット(観光地)登録
位置情報とコンテンツ情報を登録しておくといいことあるかも...


■国土数値情報ウエブサービス化
ダウンロードしてGoogleMapに重ねてみました...


このブログ記事について

このページは、が2006年9月21日 23:31に書いたブログ記事です。

ひとつ前のブログ記事は「[雑記] mac で DarwinPorts」です。

次のブログ記事は「[mac] mac で ethereal メモ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0