使ってみよう! Bing API/SDK

第6回Hello, Bing Map App!─⁠─Silverlightで作るBing Mapsアプリケーション(6)

Map Appコンテスト

この連載では紹介していませんでしたが、Bing Map Appのコンテスト、King of Bing Maps Challengeが公式で開催されており、先日その結果が発表されました。応募作品はすでにBing MapsのMap App Galleryから利用できます図1⁠。

図1 Map App Gallery
図1 Map App Gallery

今回はこのコンテストの受賞作品と応募されたMap Appを一緒にみていきましょう。Map App作成の参考にもなると思います。

Taxi Fare Calculator

まず1位に輝いたのは、Taxi Fare Calculator図2というMap Appです。名前の通りタクシーの料金を計算(概算)してくれるアプリケーションです。余談ですがMap Appのアプリケーション名は、名前から機能が想像できるほうがよさそうですね。

図2 Taxi Fare Calculator
図2 Taxi Fare Calculator

使い方は、まず、パネルからSelect Regionから大まかな地域(米国の州など)を選択します。当然ながら日本は対応していません。次に、現在地と目的地となる2か所を、住所または郵便番号で入力します。最後にボタンをクリックすると上図のように地図上にはルート結果、パネル上には、距離や時間と料金が表示されます。

このMap AppではBing MapsのWebサービス、Bing Maps SOAP Servicesも活用して、住所・郵便番号から経緯度の取得、2点間のルート探索を行っているようです。この SOAP Servicesは、Map AppのContractを利用してサービスのエンドポイント(URL)を参照できます。次のようにMap Appのプラグインで宣言することで使用できます。

[ImportSingle("Microsoft/CredentialsGrantingContract", ImportLoadPolicy.Synchronous)]
public CredentialsGrantingContract CredentialsGrantingContract { get; set; }

このMap Appで使用しているのは、GeocodeとRouteサービスです。以下のプロパティで取得できますが、固定の値ですので、わざわざContractを使用する必要もないでしょう。

var geocodeEndpoint = CredentialsGrantingContract.GeocodeEndpoint;
var routeEndpoint = CredentialsGrantingContract.RouteEndpoint;

通常このサービスの利用にはBing Maps 開発者アカウントとBing Maps Keyという認証キーが必要になりますが、このContractを利用すると使い捨ての認証キーを取得できます。

// plugin は Contract プロパティを宣言したプラグインのクラス
plugin.CredentialsGrantingContract.CreateCredentials(plugin.Token, Created);

// Created コード例
//private void Created(CredentialsResult result)
//{
//    // 使い捨て認証キー
//    TextBlock.Text = result.AuthenticationKey;
//}

サービスの実際の利用方法については、今回は割愛します。Visual Studioを利用するとSOAPを利用したクラスを自動生成できまずが、そのままのコードではMap Appで使えないようで少し編集やコツがいるようです。

GeoSales Tax

第2位のMap Appは、GeoSales Tax図3という米国の各州の税率を表示するアプリケーションです。

図3 GeoSales Tax
図3 GeoSales Tax

上図のように税率によって色を変えて州の領域を表示しています。住所または郵便番号から税率を表示し、またその場所へ移動します。ズームすると領域が細かくなり綺麗に区分けされています。

このMap Appも先ほどのSOAP Servicesを利用しているようです。その他の情報は外部サーバーから随時取得しているようです。

Ricky’s Data Viewer

第3位のMap Appは、Ricky’s Data View図4です。このMap Appは、位置情報を持った形式のファイルを読み込み、地図上に表示させることができます。対応している形式は、Shapefile(.shp)とその属性ファイル(.dbf)およびGeoRss、SQL Server 2008のデータ型のテキストです。いずれもサンプルファイルへのリンクやサンプルテキストがあるので、すぐに試せます。

図4 Ricky’s Data Viewer
図4 Ricky’s Data Viewer

Silverlightアプリケーションは、ローカルにあるファイルでも、ファイルを開くダイアログを経由すれば読み取ることができるので、これをうまく利用していますね。また各種Map Appのエンティティを活用しています。

その他の応募作品

その他の応募作品もMap App Galleryで使用できます。それらも見てみましょう。

Microsoft Regional Directors

Microsoft Regional Directors図5は、世界にいるMicrosoft Regional Directorと呼ばれるマイクロソフトと開発者コミュニティをリンクする、開発者やトレーナーなどのエキスパートです。その方たちの地域情報から地図上に表示し、BlogやTwitterなどにアクセスできます。

図5 Microsoft Regional Directors
図5 Microsoft Regional Directors

情報は少な目で、リアルタイムに情報を更新する必要もないため、各経緯度やアイテムの情報は、Map Appプラグイン内部にリソースとして持っているのかもしれません。リソースから情報を取得するプラグインは、第2回で紹介しています。

Festivals de Théâtre en France 2010

Festivals de Théâtre en France 2010図6は、フランスの特定の劇場のみを表示するMap Appです。こちらも位置情報は、プラグイン内に保持しているようです。特徴としては、Bing Mapsのルート探索やリスト作成機能と連携しています。リストボックスや、プッシュピンのポップアップにある「Directions」「Save」から確認できます。

図6 Festivals de Théâtre en France 2010
図6 Festivals de T

また、フランス語が使用されているわけですが、ほかのMap Appと同様に登録されています。もしかすると日本語Map Appも登録可能かもしれませんね。ただし、開発チームは理解できないと思いますので、英語の説明も必要でしょう。また、現在はBeta版であるため、今後、Map Appを言語でフィルタリングすることも可能になるかもしれません。

World of Football

World of Football図7は、サッカーの試合状況を表示します。パネルに試合状況を表示し、試合を行っているスタジアムの場所に一定期間で移動します。見た目はかなり凝っている印象で、チームのエンブレムやスタジアムの写真も表示されます。

図7 World of Football
図7 World of Football

試合の情報は、Scores Proのフィードを利用しているようです。ただし、直接参照しているわけではなく、Yahoo Pipesを通して利用しています。Pipesでは、前回紹介したclientaccesspolicy.xmlにより、Silverlightアプリケーションからのアクセスを許可しているためMap Appからも利用できます。これはよいマッシュアップの例ではないでしょうか。

Map Appだけの問題かは判断できなかったのですが、Map Appの表示を終了したあとも自動で地図が移動されてしまう問題を確認しています。自動で移動してしまうようなMap Appを作成する場合は、このあたりの動作も考慮しておく必要がありそうです。

Apo-AT

Apo-AT図8は、オーストリアの特定の薬局を表示するMap Appです。位置情報などはプラグイン内部に持っているようです。

図8 Apo-AT
図8 Apo-AT

大きな特徴はありませんが、プッシュピンのポップアップの中やパネルのリスト中の項目に、画像が表示されているものもあります。ポップアップやリストの項目は、XAMLやコーディングにより自由にレイアウトできるため、画像情報の有無で表示をこのように変化させることもできます。

Random Location

最後は、Random Location図9です。名前が示すように、ランダムな場所へ移動するだけのMap Appです。ただし海上は除いてくれるようです。

図9 Random Location
図9 Random Location

海上の判定はどうしているのかは不明ですが、単純でわかりやすいアプリケーションですね。

おわりに

コンテストの応募作品をみてきましたが、いかがでしたか。残念ながらかなり応募数が少なかったようです。その影響もあると思いますが、どの作品もこれまでの連載内容と少しの知識があれば、同様のタイプのアプリケーションは作成できそうですね。意外とMap App登録はハードルが低いことも伺いしれましたのではないかと思います。ぜひ何かアイデアをプラスしてMap App登録に挑戦してみてください。次回ももう少しだけMap Appについて紹介する予定です。

おすすめ記事

記事・ニュース一覧