使ってみよう! Bing API/SDK

第11回 使ってみよう! Bing Maps REST Services(3)

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

レスポンス内容

レスポンス内容の構造はBing Maps REST Servicesで共通になっています。共通の構造は第9回を参照してください。ここでは,Routes APIで使用されるレスポンスデータのみ簡単に紹介します。Routes APIで得られる<Resources>要素以下のXML形式の内容は次のようになっています。

<Route>
  <Id>v60,i0,a0,cen-US,dAAAAAAAAAAA=,y0,s1,m2,o2,t0,w8MtXBGc2NAA=~pl3oNtmFMgoAAA4B/f9/PwA=~RWlmZmVsIFRvd2VyLCBQYXJpcywgRnJhbmNl~~~,wqt5XBKwjNQA=~pl3oNglfMgoAAA4BzhFBPwE=~TG91dnJlLCBQYXJpcywgRnJhbmNl~~~,k1 </Id>
  <BoundingBox>
    <SouthLatitude>48.857842683792114 </SouthLatitude>
    <WestLongitude>2.292097806930542 </WestLongitude>
    <NorthLatitude>48.862928152084351 </NorthLatitude>
    <EastLongitude>2.335287407040596 </EastLongitude>
  </BoundingBox>
  <DistanceUnit>Kilometer </DistanceUnit>
  <DurationUnit>Second </DurationUnit>
  <TravelDistance>3.884 </TravelDistance>
  <TravelDuration>2797 </TravelDuration>
  <RouteLeg>
  .. 省略 ..
  </RouteLeg>
  <RoutePath>
  .. 省略 ..
  </RoutePath>
</Route>

まずは<Route>要素直下の内容です。各要素の内容は以下の通りです。JSON形式で取得した場合は,大文字小文字などが異なりますが,適宜読み替えてください。

要素名 説明
Id リソースごとに一意の値
BoundingBox 経路を表示するのに最適なエリア
DistanceUnit 距離の単位
DurationUnit 時間の単位
TravelDistance 経路の距離
TravelDuration 経路の所要時間
RouteLeg 出発地・到着地の経路情報
RouteLeg要素は複数含まれている場合がある
RoutePath 経路を表す経緯度のコレクション
routePathOutputパラメーターを指定した場合に含まれている

続いて<RouteLeg>要素の内容は次のようになっています。

<RouteLeg>
<TravelDistance>3.884 </TravelDistance>
<TravelDuration>2797 </TravelDuration>
<ActualStart>.. 省略 ..</ActualStart>
<ActualEnd>.. 省略 ..</ActualEnd>
<StartLocation>.. 省略 ..</StartLocation>
<EndLocation>.. 省略 ..</EndLocation>
<ItineraryItem>.. 省略 ..</ItineraryItem>
<ItineraryItem>.. 省略 ..</ItineraryItem>
<ItineraryItem>.. 省略 ..</ItineraryItem>
</RouteLeg>
要素名 説明
TravelDistance 経路の距離
TravelDuration 経路の所要時間
ActualStart 出発地点の経緯度
経緯度を指定した経路探索の場合,指定地点から近い道路の位置に置き換わる
ActualEnd 到着地点の経緯度
StartLocation 出発地点の情報
住所や建物名を指定して経路探索した場合に情報が含まれ,複数ある場合がある
EndLocation 終了地点の情報(複数)
ItineraryItem 到着地までの指示(複数)

上記の<StatLocation>と<EndLocation>要素の内容は次のようになります。以下はStartLocationの場合です。EndLocationの場合も要素名が異なるだけで,含まれる子要素は変わりありません。

<StartLocation>
  <Name>Eiffel Tower, Paris, France </Name>
  <Point>
    <Latitude>48.858250379562378 </Latitude>
    <Longitude>2.2944950312376022 </Longitude>
  </Point>
  <BoundingBox>
    <SouthLatitude>48.853590041399 </SouthLatitude>
    <WestLongitude>2.2851307690143585 </WestLongitude>
    <NorthLatitude>48.8629100471735 </NorthLatitude>
    <EastLongitude>2.3038592934608459 </EastLongitude>
  </BoundingBox>
  <EntityType>Monument </EntityType>
  <Address>
    <AdminDistrict>IdF </AdminDistrict>
    <AdminDistrict2>Paris </AdminDistrict2>
    <CountryRegion>France </CountryRegion>
    <FormattedAddress>Eiffel Tower, Paris, France </FormattedAddress>
    <Locality>Paris </Locality>
  </Address>
  <Confidence>High </Confidence>
</StartLocation>
要素名 説明
Name 地名,建物の名前など
Point 経緯度
BoundingBox エリアを示す2点の経緯度
EntityType 場所の種類(Monumentなど)
Address 住所
Confidence 一致度(High,Medium,Low,Unknownのいずれか)

到着地までの指示が記載されている<InitineraryItem>要素の内容は次のようになります。

<ItineraryItem>
  <TravelMode>Walking </TravelMode>
  <TravelDistance>0 </TravelDistance>
  <TravelDuration>0 </TravelDuration>
  <ManeuverPoint>
    <Latitude>48.861699029803276 </Latitude>
    <Longitude>2.335287407040596 </Longitude>
  </ManeuverPoint>
  <Instruction maneuverType="ArriveFinish">Arrive at Louvre, Paris, France on the right </Instruction>
  <CompassDirection>east </CompassDirection>
  <Hint hintType="PreviousIntersection">The last intersection is Place du Carrousel </Hint>
  <Hint hintType="NextIntersection">If you reach Cour Napol&eacute;on, you've gone too far </Hint>
</ItineraryItem>
要素名 説明
CompassDirection 向いている方角(eastなど)
Instruction 指示(TurnLeftなど)
TravelMode 指定したTravelModeの値
TravelDistance 対象のItineraryItemでの所要距離
TravelDuration 対象のItineraryItemでの所要時間
ManeuverPoint 指示に沿った行動をとる地点となる経緯度
Hint 指示に沿った行動をとるために手助けとなる追加情報
直前・直後の交差点情報,目印となる建物
Warning 対象経路の詳細情報
交通事故情報など

レスポンス内容は以上です。リクエスト時にcultureパラメーターにより日本を指定した場合,Instructionは日本語で返ってきます。

Bing Mapsトランザクションレポート

さて,Bing Maps REST Servicesの各APIを3回にわたり紹介してきましたが,今回で一旦終了です。ここで最後に,Bing Mapsのトランザクションレポートについて紹介しておきましょう。

Bing Maps REST Servicesに限らず,Bing Maps Keyを利用するいくつかのサービスではその呼び出し回数などをレポート形式で見ることができます。また,各種フォーマットで出力も可能です。

レポートは,Bing Maps Keyの取得時に利用した,Bing Maps Account Centerで確認できます。左側のメニューの,View my Bing Maps API usageをクリックすると,Usage Report図2とUsage Report by Category図3の2種類のレポートにアクセスできます。

図2 Usage Report

図2 Usage Report

図3 Usage Report by Category

図3 Usage Report by Category

レポート中のbillableとnon-billableは,エンタープライズ契約している場合に課金対象となるトランザクションかどうかを示しています。企業で大量アクセスが発生するような利用の場合,Microsoftと契約する必要がでてくると思いますが,読者の皆さんの多くは無償で利用できるでしょう。詳しくは,Bing Maps Licensing and Pricing Informationや利用規約をご確認ください。


今回は以上です。紹介したBing Maps REST Servicesの各APIは,API単体の利用だけでは特に意味のあるものではありませんので,ぜひ皆さんのアプリケーションに組み入れ,連携し活用してみてください。

著者プロフィール

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

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

URL:http://katamari.jp