使ってみよう! Bing API/SDK

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

この記事を読むのに必要な時間:およそ 6.5 分

Map Appのテスト

以上でコードの記述は終了です。きちんとビルドできましたか? ここまでのHelloWorldPlugin.csの内容は次の通りです。

namespace HelloWorldBingMapApp
{
    using Microsoft.Maps.Core;
    using Microsoft.Maps.Plugins;
 
    public class HelloWorldPlugin : Plugin
    {
        private Layer mainLayer;
 
        [ImportSingle("Microsoft/MapContract", ImportLoadPolicy.Synchronous)]
        public MapContract DefaultMap { get; set; }
 
        [ImportSingle("Microsoft/LayerManagerContract", ImportLoadPolicy.Synchronous)]
        public LayerManagerContract LayerManagerContract { get; set; }
 
        [ImportSingle("Microsoft/PushpinFactoryContract", ImportLoadPolicy.Synchronous)]
        public PushpinFactoryContract PushpinFactoryContract { get; set; }
 
        [ImportSingle("Microsoft/PopupContract", ImportLoadPolicy.Synchronous)]
        public PopupContract PopupContract { get; set; }
 
        public override void Initialize()
        {
            base.Initialize();
            this.mainLayer = new MainLayer(this.Token);
 
            var pin = PushpinFactoryContract.CreateStandardPushpin(this.DefaultMap.Center);
            var entity = new Entity(pin);
 
            PopupContract.Register(
                entity,
                (PopupStateChangeContext context) =>
                {
                    context.Title = "こんにちは!";
                    if (context.State == PopupState.Normal)
                    {
                        context.Content = pin.Location.ToString();
                    }
                });
 
            this.mainLayer.Entities.Add(entity);
        }
 
        public override void Activate(System.Collections.Generic.IDictionary<string, string> activationParameters)
        {
            if (LayerManagerContract.ContainsLayer(this.mainLayer))
            {
                LayerManagerContract.BringToFront(this.mainLayer);
            }
            else
            {
                LayerManagerContract.AddLayer(this.mainLayer);
            }
        }
    }
}

ビルドできたら,作成したプラグインをテストしてみましょう。ローカルでMap AppをテストするツールがMap Appとして用意されています。テストするためには,http://bing.com/maps/explore?developer=1へアクセスします(developer=1パラメーターを付けるとテストツールが有効になります⁠⁠。Map App Galleryを表示するとMap app test tool図9があるので,これをクリックします。

図9 Map app test tool

図9 Map app test tool

作成したプラグインをBing Mapに追加するには,左側のパネルから「Choose plug-in assembly」ボタンをクリックします。そしてビルドしてできたプラグインのDLLファイルを選択します図10⁠。

図10 プラグイン アセンブリファイルの選択

図10 プラグイン アセンブリファイルの選択

テスト用にローカルで実行できる環境ですので,ここでの操作はサーバーにアップロードしてプラグインを登録しているわけではありません。

もしプラグインが他に参照しているアセンブリファイルがある場合は「Add supporting assemblies」ボタンから追加できます。SDKのライブラリーは追加する必要はありません。

次に「Next」ボタンをクリックします。

次に進むと,Map Appの名前や説明,パラメーターの入力などができますが,今回は特に編集せずに「Add to map apps」をクリックして完了します。

以上で,Bing Map App Galleryに作成したプラグインが追加されました図11⁠。

図11 My Map App

図11 My Map App

クリックしてアプリケーションを実行してみましょう。地図上にプッシュピンが表示されたでしょうか。マウスポインターを合わせるとポップアップが「こんにちは!」とプレビュー表示され,クリックすると位置情報と「こんにちは!」と書かれたポップアップが表示されます図12⁠。

図12 実行結果

図12 実行結果


いかがでしたでしょうか。今回は簡単なBing Map Appを作成しました。これだけでは実用性はありませんが,Map Appの開発については少しわかったのではないかと思います。SDKにはパネルやユーザー操作なども活用したC#のサンプルプロジェクトが含まれていますので,参考にすると良いと思います。また,全世界の人に使用してもらうには,登録の申請作業も必要です。それらについてはまた次回以降で紹介します。

著者プロフィール

松江祐輔(まつえゆうすけ)

日本システムウエア株式会社 勤務。現在,ハードウェア設計・検証業務を担当。大学生・大学院生時代はベンチャー企業 有限会社ミレニアムシステムズにプログラマーとして従事。趣味はプログラミング。好きな言語はVisual Basic。Microsoft MVP for Windows Live Platform(Jul 2010 - Jun 2011),Windows Live(Jul 2011 - Jun 2013)。

URL:http://katamari.jp