Bing Mapsで地図を表示させよう
Bing Maps Keyの取得方法
Bing Mapsを使用するには下記URLのBing Maps Account Centerにアクセスして専用のライセンスキーを取得する必要があります。
http://www.bingmapsportal.com/
Microsoft アカウント(旧Windows Live ID)を持っている方はSign Inします。持っていない方はNew UserからMicrosoft アカウントを作成してSign Inしてください(図6)。
Sign In後に、左にある「Create or view keys」をクリックします(図7)。
Create keyの画面が表示されるので、必要な項目を入力してSubmitします。筆者はすでにキーを持っているので、下記にキーが表示されています(図8)。
筆者は2つのBing Mapsキーを取得していますが、Windows ストアに使用するのは、Windows Store Appsのほうを使用しています。Key typeはBasicとなっています。
ちなみに、Basic / Public websiteの場合は、「24時間で、50,000アクセスを越えない場合に無償で利用できる」ようです。
次に、ソリューションエクスプローラー内にImageというフォルダーを作成して、地図上に立てるプッシュピンの代わりとなる画像を取り込んで配置します。記事末からダウンロードできるサンプルファイルに、この画像が含まれています。
さて、これでBing Mapsを使用する手はずが整いました。ではMainPage.xamlをダブルクリックしてデザイン画面を表示しましょう。
コントロールの配置
今回使用する主なコントロールは表1を見てください。
コントロール | 名前 | 役割 |
---|---|---|
Map | myMap | Bing Maps地図を表示 |
TextBox | addressTextBox | 住所を入力する入力ボックス |
AppBarButton | okButton | 入力した住所の緯度・経度を取得してその位置にプッシュピンを立てる |
AppBarButtonはプロパティの[アイコン]ペインを展開して「Symbol」から「Accept」を選択します。[共通]ペインのLabelには「OK」と指定しておきます。
「Bing Maps SDK for Windows 8.1 Store apps」をインストールすると、「ツールボックス」に「Bing Maps」のタブが追加され、その中にMapコントロールも登録されています。このMapコントロールをデザイン画面上にドラッグすると、最初はデザイン画面の再起動のメッセージが表示されますが、再度Mapコントロールをドラッグすると地図が表示されるようになります。適当なサイズに拡大してください。
各コントロールにつけた名前は表1を参照してください。表1の各コントロールをレイアウトすると図9のようになります。
書き出されるXAMLをリスト1のように編集します。
(1)ツールボックスからMapコントロールをデザイン画面上に追加すると、自動的にMapsという名前空間が追加される。(2)Maps:Map要素のCredentialsプロパティにBing Maps Centerより取得したキーを指定する。
リスト1 編集されたXAMLコード(MainPage.xaml)
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:Bing_Maps_Sample" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:Maps="using:Bing.Maps"■(1) x:Class="Bing_Maps_Sample.MainPage" mc:Ignorable="d"> <Viewbox> <Grid Background="Black" Height="767"> <StackPanel x:Name="StackPanel1" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="1356" Background="Navy" Orientation="Horizontal"> <TextBlock HorizontalAlignment="Left" Height="68" Margin="20,15,0,0" TextWrapping="Wrap" Text="Bing Maps" VerticalAlignment="Top" Width="306" FontSize="48" FontWeight="Bold"/> <TextBox x:Name="addressTextBox" Height="56" Margin="0,21,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="640" FontFamily="Meiryo UI" FontSize="36" FontWeight="Bold"/> <AppBarButton x:Name="okButton" Height="101" Label="OK" VerticalAlignment="Top" Width="96" Icon="Accept" Margin="0,15,0,-16"/> </StackPanel> <Maps:Map x:Name="myMap" HorizontalAlignment="Left" Height="667" Margin="-13,100,-13,0" VerticalAlignment="Top" Width="1382" Credentials="Bing Maps Centerで取得したキー"/>■(2) </Grid> </Viewbox> </Page>
準備が整ったので、続いてプログラムコードを見ていきましょう。
プログラムコード(MaiPage.xaml.vb)
まず、名前空間を読み込んでおきます(リスト2)
リスト2 名前空間の読み込み
最新のHTTPアプリケーション用のプログラミング インターフェイスを提供するクラスの含まれる、System.Net.Http名前空間をインポートする。 Imports System.Net.Http アプリケーションウィンドウやウインドウ対話を作成し管理するサポートと、ウインドウ上の入力イベントを処理するクラスの含まれる、Windows.UI.Core名前空間をインポートする。 Imports Windows.UI.Core Bing Mapsに関するクラスの含まれる、Bing.Maps名前空間をインポートする。 Imports Bing.Maps UIに関するクラスの含まれるWindows.UI名前空間をインポートします。住所を表示させる場合のTextBlockの文字色等を設定する場合等に必要だ。 Imports Windows.UI コンテキストメニューおよびメッセージダイアログのサポートを提供するクラスの含まれる、Windows.UI.Popups名前空間をインポートする。 Imports Windows.UI.Popups
次にメンバー変数を定義します(リスト3)
リスト3 メンバー変数の定義
Public NotInheritable Class MainPage Inherits Page 入力した住所から緯度・経度を取得して、文字列型メンバー変数、myAddressLatitudeとmyAddressLongitudeに格納する変数を宣言する。 Private myAddressLatitude As String Private myAddressLongitude As String Windowsランタイムコアイベントメッセージディスパッチャーを提供するクラスである、CoreDispatcherクラスのメンバー変数、myCoreDispacherを宣言する。 Private myCoreDispacher As CoreDispatcher
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 自分の現在位置を取得して表示するサンプルプログラム
- フリーハンドで書いた住所を認識してBing Map上に表示する
- 現在位置近くの病院を素早く検索するサンプルプログラム
- APIを使って土地の公示価格を調べるプログラムを作る
- 指定した目的地までの距離をキャラクターが教えてくれるアプリを作ろう
- Bing Maps上に地震の震源地を表示するプログラムを作る
- 現在位置の近くにある宿を検索するサンプルプログラム
- Bing Maps上の好きな場所をマークして情報を表示するプログラムを作る
- 近くにある病院の場所をキャラクターが音声で教えてくれるアプリを作る
- Kinect v2のジェスチャーでBing Mapsを未来的に直感操作する