はじめに
前回は送信元メールアドレスにGPS位置情報取得URLをメールで返信するところまで説明しました。
今回は携帯電話からGPS位置情報を取得する方法を、携帯3キャリアの違いを超えてGPS情報を取得できるライブラリ「PEAR::Net_UserAgent_Mobile_GPS」を用いて説明し、投稿情報と位置情報をDBに保存してGoogle Maps上に展開し、PC、携帯から閲覧できる部分をサンプルを交えながら説明します。
対象読者
- PHPでのWEBアプリケーション開発について基本的なことを理解している方
サンプルアプリケーションの概要
サンプルアプリケーションのファイル構成は、次の表のとおりとなります。すべて同じディレクトリに配置しています。
ファイル名 | 概要 |
gps.php | 口コミ投稿メールに返信されるURLのアクセス先。GPS位置情報取得URLを出力する |
confirm.php | gps.phpからの遷移先。GPS位置情報を取得後に住所情報と投稿内容を表示して投稿の確認を行う |
post.php | confirm.phpからの遷移先。緯度、経度、住所情報をformから取得して、投稿情報のテーブルを更新する |
pc_map.php | 投稿情報をGoogle Maps上に展開する。PCからの閲覧用 |
mobile_map.php | 投稿情報をGoogle Maps上に展開する。携帯からの閲覧用 |
config.php | DB接続情報、Google Maps APIキーの設定情報を記載しておく設定ファイル |
Util.class.php | 逆ジオコーディングやhashの読み書きを行うクラス |
表の上のファイルより順を追って説明していきます。
動作確認環境
PHPが動作する環境に加え、メールサーバーが動作する環境が必要になります。
- CentOS 5.3
- Httpd 2.0.61
- PHP 5.3.0
- Postfix-2.6.2
- MySQL 5.0.67
- GPS対応の携帯電話
事前準備
ライブラリのインストールは以下のコマンドで行います。
Net_UserAgent_Mobile_GPSはまだ安定版ではないので「-f」をつけて強制インストールします。
# pear install -f Net_UserAgent_Mobile_GPS
サンプル実行の際にはGoogle Mapsを利用するので、Google Maps APIのページよりMaps APIキーを取得してください。
今回利用するGoogle Maps APIは以下のものになります。
API名 | 概要 |
Google Maps JavaScript API | Ajaxを使ったGoogle MapsをWebページに埋め込むためのAPI |
Google Static Maps API | Ajaxを使わずに画像としてGoogle Mapsを表示するためのAPI |
逆ジオコーディング | 地図上のポイント(緯度、経度)を住所に変換するAPI |
サンプルの実行にあたっては前回と同様にディレクトリやドメイン名は実行環境に応じて読み変えてください。