Routes API
前回までにBing Maps REST ServicesのLocation API、
Routes APIを利用すると次のふたつのことができます。
- 出発地から到着地までの経路探索
- 到着地への主要道路からの経路探索
車または徒歩での経路探索が選択でき、
ただし、

今のところ日本では実質的に利用できないため、
出発・到着地を指定した経路探索
まず、
URLの書式
APIのURLの書式は次のようになります。
- http://
dev. virtualearth. net/ REST/version/Routes/travelMode?
wayPoint.1 =wayPoint1&
waypoint.2 =wayPoint2&
wayPoint.n=wayPointn&
optimize=optimize&
avoid=avoidOptions&
routePathOutput=routePathOutput&
distanceUnit=distanceUnit&
key=BingMapsKey
Bing Maps Services共通のURLは次の通りでした。Routes APIの場合、
- http://
dev. virtualearth. net/ REST/version/restApi/resourcePath?queryParameters&key=BingMapsKey
各パラメーターの内容は次の通りです。前回紹介したImagery APIでは経路の描画もサポートしていたため、
パラメーター |
説明 |
---|---|
travelMode | 車または徒歩の経路かを指定
|
avoid | 経路探索時、 以下の値を指定
例:avoid=highways,tolls |
waypoint.n |
経路の出発・ nの部分は0または1から1ずつインクリメントとした値を順番に指定、 ルート指定形式の場合必須 例:wp. |
optimize |
以下の値を指定
|
routePathOutput |
レスポンスに経路を表す経緯度のコレクションを含めるかを指定
|
distanceUnit |
使用する距離の単位
|
上記のうちwaypoint.nのみ必須のパラメーターです。travelModeを省略する場合は次のように /Routes の後にすぐクエリーを付けてURLを表記します。
- http://
dev. virtualearth. net/ REST/version/Routes?
wayPoint.1=wayPoint1&...
経路探索の例
実際に経路探索をしてみましょう。以下は、
- http://
dev. virtualearth. net/ REST/ v1/ Routes/Walking?
wp.1 =Eiffel%20Tower&
wp.2 =louvre%20museum&
optmz=distance&
key=BingMapsKey&o=xml
次の例は経緯度を指定した場合です。また経路の経緯度情報も取得しています。レスポンスをみると複数の経緯度情報が含まれているのがわかります。
- http://
dev. virtualearth. net/ REST/ v1/ Routes?
wp.1 =40,-120&
wp.2 =40.5,-120. &5
rpo=points&
key=BingMapsKey&o=xml
主要道路からの経路探索
Routes APIのもうひとつの機能は到着地点を指定し、
URLの書式
メタデータ取得のURL書式には次の通りです。
- http://
dev. virtualearth. net/ REST/version/Routes/ FromMajorRoads?
destination=destination&
exclude=routes&
rpo=routePathOutput&
du=distanceUnit&
key=BingMapsKey
各パラメーターは次の通りです。出発・
パラメーター |
説明 |
---|---|
destination |
到着地となる場所を住所・ 例:dest=1 Microsoft Way Redmond WA |
exclude |
「routes」 |
経路探索の例
実際の例は次のようになります。
- http://
dev. virtualearth. net/ REST/ v1/ Routes/ FromMajorRoads?
destination=1%20Microsoft%20Way%20Redmond%20WA&
excl=routes&
key=BingMapsKey&o=xml
結果をみると、
レスポンス内容
レスポンス内容の構造はBing Maps REST Servicesで共通になっています。共通の構造は第9回を参照してください。ここでは、
<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 | 場所の種類 |
Address | 住所 |
Confidence | 一致度 |
到着地までの指示が記載されている<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éon, you've gone too far </Hint>
</ItineraryItem>
要素名 | 説明 |
---|---|
CompassDirection | 向いている方角 |
Instruction | 指示 |
TravelMode | 指定したTravelModeの値 |
TravelDistance | 対象のItineraryItemでの所要距離 |
TravelDuration | 対象のItineraryItemでの所要時間 |
ManeuverPoint | 指示に沿った行動をとる地点となる経緯度 |
Hint | 指示に沿った行動をとるために手助けとなる追加情報 直前・ |
Warning | 対象経路の詳細情報 交通事故情報など |
レスポンス内容は以上です。リクエスト時にcultureパラメーターにより日本を指定した場合、
Bing Mapsトランザクションレポート
さて、
Bing Maps REST Servicesに限らず、
レポートは、


レポート中のbillableとnon-billableは、
今回は以上です。紹介したBing Maps REST Servicesの各APIは、