携帯GPSの基礎知識たち

最近、モバイルサイトの位置情報登録を実装をしなくてはならなかったので、Webで調べたり同僚に質問したりして分かったこととかをメモ。

GPS

グローバル・ポジショニング・システム – Wikipediaを読むと面白い。モバイルサイトの場合、簡単に言えば、緯度・経度といった位置情報をGPS衛星を使って測定した上で、その値をパラメータに付けて指定したURLにリダイレクしてくれる。パラメータとして受け取った値を使って地名に紐付けるなどして利用することができる。

測地系(datum)

緯度・経度の測定基準点をどうするのかという違いがあって、モバイルだと、世界測地系WGS84)と日本測地系(Tokyo)と日本測地系2000(JGD2000)を知っておくと良い。

緯度・経度(latitude, longitude)

緯度・経度はどのように表記されるのか。ISO 6709 – Wikipediaにある一覧表が参考になる。モバイルだと、 度単位(degree)と度分秒単位(dms)を知っておくと良い。

各キャリアの違い

上記の情報を理解して各キャリアのドキュメントを参照すると違いが把握できる。

大きな違いは次の三つ。

  1. パラメータの違い
    • 例えば、docomoauは緯度・経度が別々のパラメータで取得できるが、SoftBankWILLCOMは「N35.44.33.150E135.22.33.121」というような一つのパラメータになる。
  2. 書式の違い
    • 度単位(degree)と度分秒単位(dms)に分かれる。
    • パラメータでどちらにするかを選択できるキャリアもある。
  3. 測地系の違い

実装

id:yappoさんのGeo::Coordinates::Converterを使う。もしくは、Perl以外の場合も実装自体がとても参考になる。

オープンiエリア

docomo独自のもので、ドキュメントは作ろうiモードコンテンツ:オープンiエリア | サービス・機能 | NTTドコモにある。全国を505エリアに区切ったものでdocomo端末だとエリア番号としても取得できる。iエリアデータファイルが公開されているので、他キャリアのGPS情報からどのiエリアなのかを探すこともできる。厳密な位置が必要でなければ、このiエリア基準にすることで、キャリア間の差が吸収できてニコニコできる。

緯度・経度からオープンiエリアを特定する

id:tokuhiromさんのGeo::Coordinates::Converter::iAreaを使う。こちらも同じくPerl以外の場合も参考になる。

まとめ

位置情報で使われる用語をある程度理解して、各キャリアのドキュメントを読んで、既存の実装をみるとそれなりに理解できるのではないかと思う。また、このエントリはGPS携帯 位置情報 基礎知識で書かれていることと重複している点が多いと思うので、そちらも参考にすると良いと思う。

SQL上の計算でもunsignedは有効

MySQLでunsigned属性を付けたカラムで計算すると負の値が扱えないということを知らなかった。
例えばこんな感じのテーブルを作っておいて

create table hoge (
foo int unsigned,
bar int unsigned,
baz int,
qux int
);
insert into hoge values (5, 10, 5, 10);
select * from hoge;
+------+------+------+------+
| foo  | bar  | baz  | qux  |
+------+------+------+------+
|    5 |   10 |    5 |   10 |
+------+------+------+------+

unsigned属性の付いたカラムのfooとbarで計算すると

select foo - bar from hoge;
+----------------------+
| foo - bar            |
+----------------------+
| 18446744073709551611 |
+----------------------+

となる。Tableに入れなくてもSQL上の計算でこのような結果になることを知らなかった。片方のカラムがunsigned属性の場合も同じで

select foo - qux from hoge;
select baz - bar from hoge;

これも負の結果は得られない。
両方にunsigned属性がなければ上手くいく。

select baz - qux from hoge;
+-----------+
| baz - qux |
+-----------+
|        -5 |
+-----------+

SQLで計算している間は単なる数値として扱われると勝手に思い込んでいた。他のDBでも同じかな。

「「世界征服」は可能か?」を読んだ

括弧が入れ子になってしまった。
少し森博嗣小説を読む手を止めて(読むのに手を止めるのは変か)読んだ。

「世界征服」は可能か? (ちくまプリマー新書)

「世界征服」は可能か? (ちくまプリマー新書)

そうだなぁと思える部分とそうかなぁと思える部分が交錯して面白かった。
支配者のくだりは天で赤木が原田に対して話している内容も興味深かったなとふと思い出した。

天―天和通りの快男児 (18) (近代麻雀コミックス)

天―天和通りの快男児 (18) (近代麻雀コミックス)

赤木は関西トップクラスの暴力団の組長である原田に対して

つまり…成功者…
大物らしく振る舞うことを要求してくる………!

天 18 (18) (近代麻雀コミックス)

悲しい時も泣けず…
おかしくても笑えず…
怒りが込み上げても…
安々と爆発なんか出来やしねぇ…!

天 18 (18) (近代麻雀コミックス)

ありのままの自分がどこにもねぇじゃねぇか…

金や家来をいくら持ってようと…
そんなもん俺は毛ほども羨ましくねぇ…

みすぼらしい人生だ…!

生きていると言えるのか…?お前…
それで…

天 18 (18) (近代麻雀コミックス)

と言い放つ。これは、

階級が上のほうがいいことがあるのではなくて、階級が上だから、飲み屋に入ったときにサルーンに行って、高いビールを飲むのが当たり前。それだけの金がなければ行くなということです。

「世界征服」は可能か? (ちくまプリマー新書 61)

という岡田斗司夫氏の階級社会についての言及とも重なるのではないかと思う。それぞれ、どちらが上か下かは別にして階級差を表した興味深い表現だと思う。
人を支配すると言えば壮大な話にも聞こえるけれども、人の上にたつ、ということであれば非常に身近ではないか。なぜ人の上にたちたいのか、たって何をしたいのか、そしてしたいことは本当に実現するのか、多くの場合で華麗にスルーされている内容なのだろうなと深く感じた。

デザインを変更した

一年以上振りではないかと思うけれども、ブログのデザインを変更した。公開デザイン祭2008春をやっていたので、自分に会うものがあるかなと探した結果どんぴしゃりなものを発見したのが大きな理由。
そういう訳で、公開デザイン「Sakura」をインポートさせてもらった。素晴らしい。桜がとても綺麗だ。
アンカーの色使いやリストの表示など、細かくデザインされているので、そのままでも良かったのだけれども、好みの問題でいくつか上書きのCSSを書いた。
一つは横幅。MacBook Proで見たときは15インチのディスプレイということもあって、とても見栄えよく幅も適切だなと感じたのだけれども、WindowsのノートPC(1024×768)ではさすがに幅が広い。Yahoo!mixiなど幅の広い固定幅が一般化してきているとも思うので、一概に悪いということはないと思うけれども、幅を狭くした。
もう一つはフォント。Windows用にMeiryoを設定したいというのが大きな理由で、あとは好みの問題で変更した。preタグにはコード用にMonacoやConsolasを指定するとか。
個人的な趣向で少し変更したとはいえ、とても気に入った。id:wakatake_greenさんに本当に感謝。

ガンプラを組み立てた

最後に作ったのは恐らく大学生の時だっただろうから、もう5年ほど前の話だ。慢性的にガンプラを作りたいなと思っていたものの、先週どうしても作りたくなって週末にヨドバシカメラに物色しに行った。
30分ほどゲームホビー館のフロアを巡回してかなり悩んだ結果、ニューガンダム メタリックコーティングバージョンを購入した。実家に住んでいたときには必ず塗装していたのだけれども、今の家では厳しいので、出来上がりはとても不安だったものの冒険してみた。一体に6千円以上も支払うのもある意味冒険だ。
HI3B0028
HI3B0028 posted by (C)cloned
ミニ四駆などのように接着剤不要で非常にてきぱきと作業できたにも関わらず5、6時間ほどかかった。以前に比べてプラスチックの強度が上がったのか、細い部品を避けるようになったのか(恐らく後者)、部品を折ってしまったりすることはなかった。
HI3B0021
HI3B0021 posted by (C)cloned
プラスチックのメッキ感がやはり塗装したものよりも安物っぽく見えてしまうとはいえ、まずまずの見栄え。さすがはマスターグレード
HI3B0022
HI3B0022 posted by (C)cloned
股関節と脚に金属の部品を使っているため、持ったときの重量感があり、置いたときにも安定する。重みがあると少し高級感を感じる。
HI3B0023
HI3B0023 posted by (C)cloned
武器もちゃんとしていて、特にフィン・ファンネルがちゃんと可動式になっているところが素敵だなぁと思った。
HI3B0024
HI3B0024 posted by (C)cloned
可動部では、脚のピストン周りがちゃんと再現されているのも素敵だと思った。
HI3B0025
HI3B0025 posted by (C)cloned
色々と以前に比べて進化していて凄いなと思ったけれども、デカールが健在ということに少し驚いた。詳しくはデカール – Wikipediaとかをみるとして、普通のシールに比べると水分があるうちに位置を微調整できるし、気泡さえちゃんととればしわなどができにくくて見栄えも良い。ただ、結構貼るのが難しい。今時は別の方法でやっているのだろうと勝手に思っていたけれども、これは以前のままだった。
HI3B0026
HI3B0026 posted by (C)cloned
放置しておくと必ず埃がこびりついてしまうだろうから、こまめに拭き取るか、やはりディスプレイケースを購入するべきだろうか。
HI3B0027
HI3B0027 posted by (C)cloned
プラモデルを作るのが小さい頃から好きで、スプレーでの塗装などもよくやった。マスキングテープなどの必要な道具も色々と持っていた気がする。ガンプラも作ったけれども、戦闘機や戦車もよく作った。
7弦ギターも自分で色を塗ったので組み立てるとか色を塗るとかが好きなのだろうなと思う。

「詩的私的ジャック」を読んだ

最近お勉強の本を読んでいない。専ら小説を読んでいる。
森博嗣氏の小説を読むとストーリーとしての面白さは勿論あるけれども、それ以上に自分の知識や発想の乏しさを痛感する。専門書は知らないと知っていることを知るために読むが、小説などは知らないと知らなかったことを知ることができる。これは非常に大きいことではないか。知らないことを知れば、あとは専門書を読めば良いのだから。
高校生くらいのときにこのS&Mシリーズに出会っていたらもの凄く勉強して大学院にまで行ったかもしれない、などと一瞬思うけれども幻想だろう。中学生の頃くらいには化学や物理(所謂理科)がとても好きだったし数学も好きだったけれども、計算問題が大嫌いだったために文系に進んだ。少なくとも今のところS&Mシリーズだけでこれが直るとも思えない。
計算問題以外にも漢字を何度も書かされる宿題は大嫌いだった。方法論がわかっているのにトレーニング目的や記憶目的に繰り返し作業を要求されるのが嫌いだったのだろうなと思う。
大分と話が逸れたけれども、今回も楽しく読むことができて非常に満足。

詩的私的ジャック (講談社文庫)

詩的私的ジャック (講談社文庫)

東京に来て2年が経った

早いものでもう2年になる。このエントリを書いたのは、大阪の部屋で段ボールに囲まれて随分と遅刻した引っ越し屋を待っていたときだ。
大阪に比べて東京は仕事が細かいから大阪のノリは東京では通用しないというようなことを言う知り合いがいた。東京で仕事をした経験のある人はひと味違うという意味合いなのだとは思ったけれども、全く同意できなかった。癪に障るので東京に来た。来てみたら想像していた通り大阪でも東京でも同じだった。
東京の方が人が集まっている、というのはある。イベントなどでは東京の方が有利だ。ブログなどで見かける人たちも自分の知っている範囲では関東圏に居る人がとても多い。
大阪に居たときも一人暮らしをしてはいたけれども、東京に来たことで帰省らしい帰省ができるようになった。とは言っても、新幹線で2時間半程度で着いてしまうから、大阪に行っても全く懐かしい感じは得られない。
東京に来て良かったと思う。外国のビールを飲むようになったのが素晴らしい。
東京に来て多くの人に会って色々な刺激を貰えたのは幸福なこと。しばらくは東京に居るかな。

サーバマシンのメモリが故障した

突然SSHで入れなくなって(24時間稼働なのでそれが突然かどうかはわからないけれども)本体に直接つないでいるキーボードも反応がなくなってしまったので、仕方なく電源を落とした。
あらためて起動しようとしてもOSの起動途中でフリーズしてしまう。BIOSでみるとどこも異常がなさそうだったのだけれども、起動時チェックのスキップを外して再度起動してみると、メモリの読み書きでエラーが出ていることが判った。
家で使っているのはDELLのSC420でメモリは256MBx2。片方ずつ外してみたら一つだけエラーになることが判ったので、無事起動。とはいえ、256MBというのはあまりにも辛いので、メモリを追加で購入することにした。
PowerEdge SC420 のメモリ – Ceekz Logsを参考にして買いにいったところ、ECCのものが店頭にないっぽかったのでNon-ECCの1GBを購入。ECCとNon-ECCを併設が無理なようなので、生きている256MBも外して1GBを設置。問題なく認識できた。
自分はハードの知識が全然ないので、ECCやRegisteredなどのメモリの種類を初めて知った。メモリの ECC と Registered と Unbuffered の意味が簡潔にまとまっている。
コストを考えずに自作を作るつもりでいろいろと調べると面白いのかもしれないなぁ。

MacBook Proを買った

そこらじゅうでMacBookを購入している記事が目に入るけれども、伝染したわけではなく普通に予定していての購入。
MacBook Pro
MacBook Pro posted by (C)cloned
MacBook Airのモバイル性は魅力的だけれども、自宅のメインマシンにしたいというのと、Adobe系のソフトや音楽系のソフトも入れていくつもりなので、MacBook Proにした。
MacBook Pro
MacBook Pro posted by (C)cloned
渋谷のアップルストアで店員さんと相談して、結果的にデフォルトのスペックを選択した。15インチディスプレイに 2.4GHz Intel Core 2 Duo、メモリは2GBでハードディスクが200GB(5400rpm)という感じ。
ディスプレイを17インチにすると膝に置くことすら厳しいサイズになるので15インチに、ハードディスクは回転数の速いものに変えようと思っていたけれども、速度的にはあまり差がないらしく消費電気が大きくなるとのことだったので変更しないでおいた。
AppleCareも付けておいた。3年間くらいは無償で修理を受けたいなと思うので。
MacBook Pro
MacBook Pro posted by (C)cloned
とりあえずのインストールなどは、MacBookPro導入時にインストールするもの – Unix的なアレを参考にさせてもらった。
ただ、正直自分のマシンとしてMac使うのが初めてなので壁紙の変え方すらわからないから、しばらくはあれこれ調べる日々が続きそう。
それにしても、Windowsだとまずはウィルス対策ソフトのインストールだろとかいう話になりそうだけれども、Macはデフォルトでも大丈夫なのだろうか。きっとid:ogijunさんが教えてくれる筈。