はじめに
11月8日にWindows Phone 7がアメリカ、カナダで発売となりました。シンガポールでの先行発売時に手に入れることのできなかった、日本のWindows Phoneファン達にも届き始めているようです。
そのほか、Windows Phone 7関係のニュースとしては、Silverlight for Windows Phone Toolkitの11月度リリースが行われました。今回のリリースの目玉はコントロールの追加です。新しく追加されたコントロールを紹介しましょう。
- AutoCompleteBox
-
テキストを一文字入力するたびに検索結果の候補を絞り込むインクリメンタルサーチ機能を提供するコントロールです。
- LongListSelector
-
インデックスの項目を選択してジャンプする機能を持ったインデックス付きリスト表現を行うコントロールです。
- ListPicker
-
複数の項目から一つを選択する場合などに使用できるコントロールです。
- Page Transitions
-
Roll、Rotate、Slide、Swivel、Turnstileの基本的な5パターンの画面遷移アニメーションを提供します。
「Silverlight for Windows Phone Toolkit - Nov 2010」は、こちらからダウンロード可能です。
地図上に線を引く
マップ上に線を引く場合は、Microsoft.Phone.Controls.Maps名前空間のMapPolylineクラスを利用します。メモリとパフォーマンスの許す限り線を引くことができます。
ただ、線を引き始める位置と終わりの位置は、緯度経度の位置情報で指定するため、複雑な線を引くのには向いていません。
GPSのロギングを行う
前回位置情報を取得したのと同じく、GeoCoordinateWatcherクラスを使用します。正確さよりもパフォーマンスを優先させるために、GeoPositionAccuracy.Defaultを設定します。
前回の位置情報を記憶しておき、現在の位置情報との間に線を引きます。
阪急十三駅からJR塚本駅まで移動したときのログを元に、データをシミュレータで再生させてみました。実機で上記のコードを実行すると、このような表示になると思います(GPSデバイスの精度次第で、もう少し細かい表示になるかもしれません)。
Windows Mobile 6でGPSの位置情報を取得する
おまけにWindows Mobile 6で位置情報を取得する方法についてご紹介したいと思います。Windows Phone 7のように優れたロケーションサービスがなく、実質Over Skyでないと測地ができません。
Windows Mobile 6では、マネージコードからGPSを扱うためのクラスは標準では用意されていません。そこでWindows Mobile 6 SDKに付属しているGPS Intermediate Driverをラップしたライブラリを使用します。
ソリューションエクスプローラーから以下のプロジェクトを追加します。Visual Studio 2008を使ってWindows Mobile 6アプリケーションを開発されている方は、変換ウィザードが表示されると思いますので、変換を行ってください。
位置情報を取得する
Windows Mobile 6アプリケーションプロジェクトから、Microsoft.WindowsMobile.Samples.Locationプロジェクトを参照しておきましょう。位置情報を取するコードを以下に示します。
GPSクラスのインスタンスを生成して、GPSデバイスのポートを開いて測地を開始します。デバイスのステータスが「GPSサービス有効」になるまで待ち、位置情報を取得しています。
このGPSクラスは内部的にCOMポートをポーティングして、GPSデバイスから吐き出された測地情報を処理し、イベントとして登録したハンドラを呼び出します。ここではイベントハンドラは登録せず、
SDKのサンプルコードとはいえ、GPSを使った位置測地がマネージコードから扱えますので、ネイティブコードを意識しざるを得ない.NET Compact Frameworkでも簡単にGPSロガー的なアプリが作れます。
さいごに
Windows Mobile 6とWindows Phone 7で、GPSを使ったアプリケーションのTipsを紹介しました。デバイスを活用したアプリケーションは実機を使うのが一番ですね。
Microsoftは積極的にローカライズを進めていると発表しているので、2011年度には日本でも発売されるだろうと予想しています。Windows Phone 7が一般のユーザーにいかに受け入れられるかは判りませんが、2011年末には世界で3,000万台販売見込みとの予測も立てられています。この先どうなるか楽しみで仕方がありません。
以上で今回は終わりです。ありがとうございました。