|
|---|
HTMLやCSS、JavaScriptでスマートフォンアプリを開発できるフレームワーク「PhoneGap」。今回はPhoneGapを使って地図アプリを作ります。
PhoneGapで地図を扱う方法は2つあります。1つは、Googleマップを利用する方法です。PhoneGapはWebKitを呼び出しているだけですので、Googleマップがそのまま利用できます。Googleマップを利用したWebサービスをほぼそのままアプリ化できるのがメリットです(アプリにする場合は各サービスの使用条件を確認してください)。
もう1つは、iOSの「MapKit」を使う方法です。以前紹介したNimbleKitではMapKitを呼び出して使うAPIがありましたが、PhoneGapにはありません。その代わり、プラグインを追加することでMapKitの機能を利用できます。なお、プラグインのバージョンによって書式などが変わってくる場合がありますので注意してください。
PhoneGapプロジェクトの作成
最初に、Googleマップを表示してみましょう。現在のGoogleマップ(バージョン3)はPhoneGap上でも問題なく使用できます。GoogleマップAPIについては、私のサイトにある逆引きリファレンスや過去の連載記事も参考にしてください。
- 逆引きGoogleマップ APIリファレンス ver 3
- http://www.openspc2.org/reibun/Google/Maps/API/ver3/
- 第1回 iPhoneのGPSをJavaScriptで操ろう
- http://ascii.jp/elem/000/000/433/433470/
- 第28回 加速度センサーで操縦する地図サイトを作ろう
- http://ascii.jp/elem/000/000/505/505371/
XcodeでPhoneGapプロジェクトを作成します。プロジェクトは以下の手順で作成します。
![]() |
|---|
| ファイルメニューから「新規プロジェクト...」を選択 |
![]() |
|---|
| PhoneGap-based Applicationを選択し、「選択...」ボタンをクリック |
![]() |
|---|
| 作成するプロジェクト名を入力し保存 |
新規プロジェクトを作成したら、Googleマップを表示するHTMLとスクリプトを入力します。地図を表示する領域は以下のように300ピクセル×300ピクセルとしました。ID名の「gmap」はGoogleマップ APIを利用するときに必要です。
<div id="gmap" style="width:300px;height:300px"></div>
地図を表示します。地図の中心位置は富士山にしました。富士山の緯度経度は、おおよそ以下のようになります。
var pos = new google.maps.LatLng(35.3628410163896, 138.73156428337097);
地図を画面上に表示します。new google.maps.Map()に必要な引数を指定します。
var map = new google.maps.Map(
document.getElementById("gmap"),{
zoom : 9,
center : pos,
mapTypeId : google.maps.MapTypeId.ROADMAP
}
);
これで富士山を中心とした地図が表示されます。せっかくなので富士山にマーカーを表示してみましょう。マーカーはnew google.maps.Marker()として必要な引数を指定すると表示できます。
var marker = new google.maps.Marker({
position: pos,
map: map
});
ここまでをまとめたコードは以下のようになります。Googleマップの入門ページや書籍でも解説されている基本的な部分ですので、あまり難しくはないでしょう。
![]() |
|---|
| 作成したプロジェクトとスクリプト |
■HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<script type="text/javascript" charset="utf-8" src="phonegap.0.9.5.1.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
window.onload = function(){
var pos = new google.maps.LatLng(35.3628410163896, 138.73156428337097);
var map = new google.maps.Map(
document.getElementById("gmap"),{
zoom : 9,
center : pos,
mapTypeId : google.maps.MapTypeId.ROADMAP
}
);
var marker = new google.maps.Marker({
position: pos,
map: map
});
}
</script>
</head>
<body>
<h1>Google Map</h1>
<div id="gmap" style="width:300px;height:300px"></div>
</body>
</html>
ソーシャルリアクション
この連載の記事
- 第75回 CSS3でFlash並みアニメが作れるSencha Animator
- 第74回 Capture APIでiPhone用ビデオレコーダーを作ろう
- 第73回 JavaScriptで作れるiPhone用ボイスレコーダー
- 第72回 PhoneGapのMedia APIでバイブ付き音楽プレーヤー
- 第71回 iPhoneがPhoneGapで簡易電子書籍リーダーに
- 第69回 HTML5+CSS3でiPhone用動画アプリを作ろう
- 第68回 iPhone/iPad両対応!PhoneGapで作るアルバムアプリ
- 第67回 フォトアルバムアプリで学ぶPhoneGapの使い方
- 第66回 PhoneGapでiPhoneのカメラアプリを作ろう
- 第65回 HTML5でiPhoneアプリ開発!PhoneGap入門
- この連載の一覧へ




















![Microsoft Windows7 Home Premium 64bit 日本語 DSP版 + メモリ [DVD-ROM] Microsoft Windows7 Home Premium 64bit 日本語 DSP版 + メモリ [DVD-ROM]](http://ascii.jp/img/amazon_noimg70.gif)





