このページの本文へ

iPhoneのJavaScriptアプリをAndroidに3行で移植 (3/4)

2009年09月07日 23時38分更新

文●古籏一浩

  • この記事をはてなブックマークに追加
本文印刷

Gearsで位置情報を取得する

 GearsのAPIを利用するために、以下のサイトからJavaScriptファイル(gears_init.js)をダウンロードします。

Get gears init.jsのリンク上で右ボタンをクリックしてファイルを保存する

Get gears init.jsのリンク上で右ボタンをクリックしてファイルを保存する

 gears_init.jsは、以下のように<script>タグを使ってHTMLに組み込みます。


<script type="text/javascript" src="gears_init.js"></script>


 Android携帯のGearsとiPhone 3GSのSafariでは、GPSに関するメソッド名/パラメーターは同じです。ただ、オブジェクトと階層が異なっているため、iPhone 3G用に書かれたプログラムを大幅に変更しなければならず、少々面倒です。

 そこで以下のコードを追加して、iPhone 3Gと同じ階層にオブジェクトをリンクします。


if(!navigator.geolocation) navigator.geolocation = google.gears.factory.create('beta.geolocation');


 本連載の第2回で作成したプログラムにAndroid携帯用のコードを追加したものがサンプル01です(スクリプト部分のみ掲載)。Gearsを組み込んで1行追加するだけなので簡単ですね。


サンプル01のソースコード


// ページが読み込まれたときの処理
window.onload = function(){
    // グーグルマップ ver 3の構築と表示
    var defPos = new google.maps.LatLng(36, 137); // 座標値はどこでもよい
    gmap = new google.maps.Map(document.getElementById("map_canvas"), {
        zoom : 17,
        center : defPos,
        mapTypeId : google.maps.MapTypeId.ROADMAP
    });
    gmarker = new google.maps.Marker({
        positon : defPos,
        map:gmap,
        icon : "./arrow.png"
    });
【ここを追加→】    if(!navigator.geolocation) navigator.geolocation = google.gears.factory.create('beta.geolocation');
    navigator.geolocation.watchPosition(update);
    setInterval("readDB()", 5 * 1000);  // 5秒に一回データベース内のGPSデータを表示する
}


この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています