ひとりあそび協会でタグ「位置情報」が付けられているもの

やっぱり携帯サイトを作るぞ(2)

| | コメント(0) | トラックバック(0)

 やっぱり携帯サイトを作るぞ(クレヨンしんちゃん風に)の続き。

 とりあえずこのページがそれ。アクセスしたときにPC、iモード、SoftBank、auそれぞれで別のページを表示するようにしてみた。とは言っても作りこみはしてなくて、PCから見たときはiモードに誘導するためのQRコード画像を表示、SoftBankとauではテキストでSoftBank、auという文字を表示しているだけ。たしかこの2つのキャリアはhtmlタグ(のようなもの)が異なるので、後日ちゃんと仕様にあわせなきゃいけない。「ドコモ専用です」と表示させるだけなんだけど。

 んでiモードからアクセスするとiモード用のページが表示される。これは前回作って放り出したものを、仕組みを忘れてよくわからないまま使い回している。とりあえずgoogleマップの地図画像を使うと上手く表示されないことがあるので、Yahoo!の同等サービスを使おうとしていたことは覚えている。あとGPSの位置測定基準が2種類あるようなので、その両方に対応できるようにしなければいけない。世界測地系とか何とか。

 経度緯度から住所を取り出すapiが頻繁に503エラーになるので、取得できなかったときにはメッセージを表示するようにした。

$url = 'http://nishioka.sakura.ne.jp/google/ws.php?lon='.$lon0.'&lat='.$lat0.'&format=simple';
@$aryaddress = file( $url );
if( $aryaddress == "" ){$err  = "住所取得に失敗しました(503)";}

 さてさて。次はどうしようかな。

関連:

 去年秋にGPSを使った携帯サイトを作りかけていた。そのときはまだGPSに連動していなかったgoogleマップのiアプリに所在地を渡して擬似的に連動させるのが目的だったんだけど、やっぱりというか当然というか、いろいろやっているうちにgoogleマップiアプリがGPSに対応するようになったので作るのが面倒になって…飽きちゃった。

 けど、そのときについでに作った「現在地をメールで送る機能」は思い起こせばなかなか便利なものだった。携帯で写真を撮りそのままメモとして自分に送ったり、「今ここにいるよ~」と友達に送ったりと、単純ながら使える。

 そこで忘れたことを復習しながら、このシンプルな機能に特化した携帯サイトを完成させようと思う。内容はこんな感じ

  • トップページにアクセスしたときにPCと携帯に自動的に振り分け
  • PCからアクセスしたときはサイトの説明とQRコードを表示
  • 携帯(iモード)からアクセスしたときは位置取得ボタンを表示→位置取得→メールリンク表示
  • メール内に地図画像へのリンク(phpを挟んでURL短縮化)

 とりあえずiモードでメーラーを起動するときはタイトル30バイト、本文500バイト以内でurlエンコードが必要(→iモード対応HTMLタグ一覧 : subject, body属性 | サービス・機能 | NTTドコモ

関連:

GPS・位置情報取得テスト(4)

| | コメント(0) | トラックバック(0)

 いよいよ GPS で住所を取得して google マップⅰアプリにコピペで渡せる仕組みを作ってみた。それだけではつまらないので現在地の地図画像を表示し、ついでに現在地をメールで送れるようにした。

 地図画像はこちらのブログ( google local の地図画像を抜き出して使う - ZeroMemory )を参考に、Google のサービスを利用した。経度緯度を数字の桁(ドット)を取ってそのまま突っ込んでみたところ、地図がちゃんと表示されなかった。これは小数点以下6桁までに数字を丸めたら上手くいった。

 メール送信のリンク部分では、このようにメールタイトルとメール本文を渡している。

<a href="mailto:?subject=~~~&body=~~~">現在地をメールで送る</a>

 メール本文中の改行コードは %0D%0A である。

 またメール本文中にも Google の地図画像へのリンク URL を記載しているが、文字数を節約するために経度緯度情報のみで一旦自分のサーバに飛ばし、そこから Google のリンク URL にリダイレクトしている。

 出来たのがこのページ。すこし使ってみたところ、(1) InvGeoCoder から住所を取得する際に 503 エラーが出ることがある(2) Google の地図が正しく生成されず、黒、青色(海)、ベージュ色(地面)のベタ塗り画像になることがある、という問題が出てきた。

 (1)に関してはエラーの表示と表示の更新を促すメッセージを表示するようにし、(2)は Yahoo の地図画像生成サービスがあるようなのでそっちに変更して様子を見るつもり。

関連:

GPS・位置情報取得テスト(3)

| | コメント(0) | トラックバック(0)

 いよいよ GPS から現在位置情報を取得してみるのだ。技術情報はドコモのサイトにあるにはあるが、簡素すぎてわかり難かった。要するにこういうことだ。

Aタグ
<a href="http://(自分の作った、次に飛ばしたいページ)" lcs>

FORMタグ
<form method="get" action="http://(自分の作った、次に飛ばしたいページ)" lcs>
<input type="submit" name="test" value="検索">
</form>

 このように a タグ、form タグの最後に lcs を付ける。そしてそのリンクやボタンをクリックすると携帯の GPS 機能が立ち上がり、位置情報送信の許可をすると以下の URL にジャンプする。

http://(自分の作った、次に飛ばしたいページ)?lat=%2B35.00.35.600&lon=%2B135.41.35.600&geo=wgs84&x-acc=3

 で、これら4つの値を拾えばいい。ドコモの説明の例では http://www.docomo.co.jp/gps.cgi?~ と書いてあったから、オープンiエリアの位置情報取得と同様にドコモのサーバにアクセスしないといけないのかと思ったよ。

 これで軽度・緯度が取得できたのだが、60進法の度分秒での表記なので10進法表記に変換する。この計算式はこちらのブログを参考にさせて頂いた:経度・緯度を60進法から10進法へ変換 - F.Ko-Jiの「一秒後は未来」

 さらに変換した経度・緯度から住所を取得する。これは InvGeoCoder という WebService をそのまま利用させて頂いた。

 これで GPS から現在地住所を取得できるようになった。これから何をしたいのかというと、GPS  の機能がない Googleマップiアプリに対して手動コピペで現在地住所を渡して、Googleマップiアプリで「今いる場所の航空写真」を見れるようにしたいのだ。

関連:

 前回オープンiエリアの位置情報(エリアコード)を取得するところまでいったので、今回はそのエリアコードから詳細情報を取得する部分を付け加えた。といっても特に難しいことはなくて、「iarea00000(エリアコード:5桁の数字).txt」というエリアデータのファイルを読み込むだけ。するとその中にエリア名や沢山の緯度経度情報がコンマ区切りで入っているという訳。

 出来たのがこのページ。データを読み込んで表示させるのはすぐに出来たが、悪い予感が的中して文字によるエリア名の表示部分が文字化けしてしまう(「溝の口」の「溝」、「港北ニュータウン」の「港」)。これは php スクリプトとエリアデータの文字コードが shift-jis なのが原因ではないかと思う。shift-jis で php スクリプトを作るのは気持ち悪いけれど、docomo の携帯サイトは shift-jis で作らないといけみたいなので仕方が無い。

 いろいろ考えれば対応方法を思いつくかもしれないけれど、とりあえず今回はオープンiエリアを取得する事が目的だったので、深追いせずにこれでよしとする。次はいよいよ GPS に挑戦するのだ。

関連:

 ネットでいろいろ見ているうちに、iモードの web ページから位置情報を取得できることを知った。ドコモ公式メニューのグルメ・クーポン系サイトでよく見かける手法だが、自分でも簡単に出来るという事には気づかなかった。

 現在、ドコモの携帯端末からその位置情報を取得する方法はオープンiエリアと GPS の2通りがあるが、まずは簡単そうなオープンiエリアでチャレンジすることにした。

 早速ドコモのサイトでオープンiエリアの説明書に目を通してみたところ、こちら(自分が作成する iモードの web ページ)から A タグか FORM タグでドコモ指定のアドレスにアクセスするとオープンiエリアのエリアコードが返ってくるという仕組みであることがわかった。

 久しぶりの php スクリプト作成なのでどうなることかと思っていたら、書き出しから何から忘れていたので大いに焦った。解説書と i モード対応 html タグ一覧 を見ながらどうにかエリアコードを取得することに成功。i モードで同じ URL へ再度アクセスした場合に初回表示時のキャッシュが表示されてしまうという癖があるが、エリアコード取得後に同じ URL へ戻った場合はちゃんと新しいデータを読み直しているようだ。

 出来たのがこのページ。ドコモの携帯からアクセスしないと位置情報が取得できずエラーが表示される。これはドコモの仕様だそうです。

関連:

Loading...
mail
Powered by Movable Type 4.01

タグ