基地局から取得した緯度/経度情報をもとに、GoogleMapから周辺の地図を取得して表示する機能を加えてみました。
![](https://blogimg.goo.ne.jp/user_image/2c/01/42b4d9af85fe8cf81587e064610dec41.jpg)
GooleMapといえば、Ajaxの代表的なアプリとして知られていますが、こちらはJavascriptが使えるブラウザを載せているわけではありません。グリグリと、マウスで地図をドラッグしたいわけでもなくて、単に自分の居場所周辺の地図画像をダウンロードしたいだけです。Google APIとか勉強すればイロイロとわかるのでしょうが、面倒なことはしたくありません。緯度経度を指定してGETすると、画像を返してくれるインタフェースがあれば十分です。そう思いながら探してみたところ、こちらのページでmapprintというインタフェースを見つけました。そうです! わたしが欲しかったのは、まさにこの情報です!
Googleの提供してくれるインタフェースの使い方はわかりましたが、そのまま直接マイコンから使えるわけではありません。次のふたつの作業が必要でした。
測地系の変換については、「表を使ってズレを求める簡便な方法」が紹介されていたので、この表のデータを使わせていただきました。画像形式については、自宅のLinuxマシンに変換をさせることにしました。マイコンからは、自宅マシンのサーバにアクセスし、自宅マシンが実際にGoogle Mapをアクセスしにいきます。Google Mapから得られた画像を、自宅マシンで12ビットBMP形式に変換してマイコンに返すわけです。
画像形式の変換作業は自宅サーバ側でおこなうことにしたので、マイコン側では位置座標と表示する縮尺を指定して自宅サーバにHTTPリクエストを送信すればいいだけになりました。位置座標はあらかじめ取得されているものを使用することにしていますので、デバック用コンソールから地図表示のコマンドを実行する際には、縮尺を指定すればいいだけになっています。
広域表示にした際の表示例も示しておきます。ちなみに、表示されている場所は前回の記事の緯度経度に基づいたものではありません。きょう見えた基地局が異なっていたのか、前回とは異なる緯度経度が取得できたので、表示場所も異なっています。
![](https://blogimg.goo.ne.jp/user_image/20/53/013f47431ee06f01397e33b87e4b19f0.jpg)
![](https://blogimg.goo.ne.jp/user_image/2c/01/42b4d9af85fe8cf81587e064610dec41.jpg)
GooleMapといえば、Ajaxの代表的なアプリとして知られていますが、こちらはJavascriptが使えるブラウザを載せているわけではありません。グリグリと、マウスで地図をドラッグしたいわけでもなくて、単に自分の居場所周辺の地図画像をダウンロードしたいだけです。Google APIとか勉強すればイロイロとわかるのでしょうが、面倒なことはしたくありません。緯度経度を指定してGETすると、画像を返してくれるインタフェースがあれば十分です。そう思いながら探してみたところ、こちらのページでmapprintというインタフェースを見つけました。そうです! わたしが欲しかったのは、まさにこの情報です!
Googleの提供してくれるインタフェースの使い方はわかりましたが、そのまま直接マイコンから使えるわけではありません。次のふたつの作業が必要でした。
- 測地系の変換 W-SIMの返してくれる緯度経度は測地系としてTokyoを使用しているようですが、mapprintではWGS84を使用しているようです。また、W-SIMが返す座標は、"度:分:秒"形式になっていますが、mapprintでは度数を小数点以下6桁まで指定する形式になっています。
- 画像形式の変換 mapprintでは出力の画像形式も指定できるようになっていますが、AT91SAM7Sマイコンで直接処理するには、GIF/JPG/PNGのいずれの形式も荷が重すぎます。
測地系の変換については、「表を使ってズレを求める簡便な方法」が紹介されていたので、この表のデータを使わせていただきました。画像形式については、自宅のLinuxマシンに変換をさせることにしました。マイコンからは、自宅マシンのサーバにアクセスし、自宅マシンが実際にGoogle Mapをアクセスしにいきます。Google Mapから得られた画像を、自宅マシンで12ビットBMP形式に変換してマイコンに返すわけです。
画像形式の変換作業は自宅サーバ側でおこなうことにしたので、マイコン側では位置座標と表示する縮尺を指定して自宅サーバにHTTPリクエストを送信すればいいだけになりました。位置座標はあらかじめ取得されているものを使用することにしていますので、デバック用コンソールから地図表示のコマンドを実行する際には、縮尺を指定すればいいだけになっています。
広域表示にした際の表示例も示しておきます。ちなみに、表示されている場所は前回の記事の緯度経度に基づいたものではありません。きょう見えた基地局が異なっていたのか、前回とは異なる緯度経度が取得できたので、表示場所も異なっています。
![](https://blogimg.goo.ne.jp/user_image/20/53/013f47431ee06f01397e33b87e4b19f0.jpg)
![](https://blogimg.goo.ne.jp/user_image/79/d7/8afdf730c7cc83fca55f9ac90f60c8e5.jpg)
非常に面白いです!!!!
ちなみに最初の地図の中心は、ちょうどソフィアシステム辺りです。わたしは、ソフィアのすぐとなりの床屋へは通っていますが、ソフィアの関係者ではありません。(笑)
すごいですね。こんなものを作ってしまうなんて。
うちのコメント欄みてもみんな感動しているみたいです。ぜひ秋月かソフィアに持ち込んでキット化を!(笑)
単なる興味なんですが、この装置って原価いくらぐらいになるんですか?
2月5日の記事で「主要パーツリスト」を掲載しましたが、これらと電源部パーツのコストを積算すればおおよその部品代になります。送料を無視すれば、おおよそ15,000円~20,000円程度ではないでしょうか。(もちろん、W-SIMの価格は含みません) CPUボードとLCDボードが高価な部品となりますが、これらは同一のプリント基板上に載せてしまえば、コストは下げれるでしょう。作ることを楽しむ趣味の世界ですので、値段で比べれば、できあいの端末を買った方が、はるかに高機能で実用的です。
ハードウェア自体は、部品点数もさほど多くない単純なものですので、スゴイものを作っているわけでもありません。個人でも、基本パーツを通販で購入することができて、それらを組み合わせる程度の電子工作でPHS端末を作れてしまうという事実は、10年前には考えられなかったスゴイことだと思います。ソフトも同じで、TOPPERSとか各所から拾い集めたサンプルをつなぎ合わせて作れてしまうのが、いいところではないでしょうか。
部品代が想像より結構高いなぁ。
ピン幅0.5mmですか(^-^;それはちょっと難しそうですね。私がたまに組み立てて遊ぶキットとは次元が違うようです(^-^;
ウィルコムのW-SIMで、何か遊びたいなぁと
思うものの、なかなかちょっとかじった程度では
何も出来ないので、とっかかりになるものが
欲しいなぁと思った次第です。
毎日こちらを拝見するのが楽しくてしょうがないです。
僕もずっとやってみたいと考えていた事でした。
回路の事は全然わからないのでちょっと敷居が高いんですが。
僕はw-simじゃなくwcdmaでいじってみたいなあと。。
まあ法律上の問題が出ちゃいますけど。
でわまた!
普通の携帯でもUSB接続でデータ通信はできるのでしょうが、音声通話ができないようですよね。わたしは、以前ドコモのp-in というPCMCIAのPHSカードを使っていたことがありますが、こいつはやはりATコマンドで音声通話が可能でした。ただし、イヤホン/マイクはPCではなく、カードにつなぐ必要があったのですが。。。Windows用にしかアプリがなかったので、当時はFreeBSDのノートPC上で Expect(Tcl/Tk)でキーパッドを作って発信して遊んでいましたっけ。
そんなこともあって、W-SIMでの音声通話をやってみたかった次第です。
CDMAとかW-CDMAでも車載用の通信モジュールなんかが、普通に購入できて遊べればいいんですが。。あるいは、EMあたりが音声通話サービスも始めることだし、インタフェース仕様を公開した通信モジュールを出してくれる事に期待したいです!!
* 「新つなぎ放題」が音声通話できないと知って、ガッカリしてます。