Bing Maps REST Services
前回まではBing Map App SDKについて紹介してきました。今回からはBing Maps REST Servicesを使ってみましょう。Bing Maps REST Servicesは、
Bing Maps REST Servicesは次の3種類のAPIに分類されています。
- Locations API
住所や経緯度、
クエリーから地理情報を取得できるAPIです。 - Imagery API
地図画像を取得、
プッシュピンを配置した・ ルート情報を表示した地図画像の取得、 タイル画像のメタデータを取得できるAPIです。 - Routes API
ルートの探索ができるAPIです。
これらのAPIでは、
Bing Maps REST Servicesは、
Location API
今回はBing Maps REST Servicesのうち、
- 住所から情報を取得
- 経緯度から情報を取得
- クエリーから情報を取得
住所から経緯度などの地理情報を得る技術はジオコーディング、
さっそくひとつの例を見てみましょう。次のようなURLにアクセスすると、
- http://
dev. virtualearth. net/ REST/ v1/ Locations?countryRegion=JP&adminDistrict=東京都&locality=新宿区&addressLine=西新宿二丁目8番1号&key=BingMapsKey&c=ja-jp
※わかりやすいよう日本語はエンコード前の値を記載しています。
{
"authenticationResultCode": "ValidCredentials",
"brandLogoUri": "http://dev.virtualearth.net/Branding/logo_powered_by.png",
"copyright": "Copyright © 2010 Microsoft and its suppliers.(省略)",
"resourceSets": [
{
"estimatedTotal": 1,
"resources": [
{
"__type": "Location:http://schemas.microsoft.com/search/local/ws/rest/v1",
"address": {
"addressLine": "2丁目8-1",
"adminDistrict": "東京都",
"countryRegion": "日本",
"formattedAddress": "東京都新宿区西新宿2丁目8-1",
"locality": "新宿区",
"postalCode": "160-0023"
},
"bbox": [
35.686481029111,
139.68893000133298,
35.691888193111005,
139.694337165333
],
"confidence": "High",
"entityType": "Address",
"name": "東京都新宿区西新宿2丁目8-1",
"point": {
"coordinates": [
35.689184611111003,
139.69163358333299
],
"type": "Point"
}
}
]
}
],
"statusCode": 200,
"statusDescription": "OK",
"traceId": "..."
}
URLに指定した値や、
Bing Maps Key
APIを利用するには、

Keyの作成は、
Bing Maps Keyは、
住所から情報取得
それでは順にリクエスト形式別にAPIの内容をみてみましょう。まず、
Structured URL
Location APIでは、
- http://
dev. virtualearth. net/ REST/ v1/ Locations/ US/ WA/ 98052/ Redmond/ 1 Microsoft Way?o=xml&key=BingMapsKey
上記の場合、
Unstructured URL
Unstructured URLの形式は次のようになります。
- http://
dev. virtualearth. net/ REST/version/Locations?
countryRegion=countryRegion&
adminDistrict=adminDistrict&
locality=locality&
postalCode=postalCode&
addressLine=addressLine&
key=BingMapsKey
まず、
続いて各パラメーターは次のとおりです。
パラメーター | 説明 |
---|---|
countryRegion | ISOの国名コードを指定します。日本はJPです。 |
adminDistrict | 広域な行政区域を指定します。日本では都道府県名にあたります。ただし必ずしも広域な行政区域とは限りません。 |
locality | adminDistrict以下の街名などを指定します。日本では主に市区群になります。 |
postalCode | 郵便番号を指定します。 |
addressLine | 番地などを指定します。 |
adminDistrict・
実際の例をみていきましょう。まず住所を番地まで指定した例です。
- 東京都、
新宿区、 西新宿二丁目8番1号 - http://
dev. virtualearth. net/ REST/ v1/ Locations?
countryRegion=JP&
adminDistrict=東京&
locality=新宿区&
addressLine=西新宿二丁目8番1号&
key=BingMapsKey&
c=ja-jp&o=xml
上記は日本語をそのまま記載していますが、
次は、
- 新宿区
- http://
dev. virtualearth. net/ REST/ V1/ Locations?
locality=新宿区&
key=BingMapsKey&
c=ja-jp&o=xml
日本の郵便番号もcountryRegionとcultureパラメーターを指定すると結果が得られます。ハイフンはあってもなくても同じ結果です。
- 郵便番号160-0023
- http://
dev. virtualearth. net/ REST/ V1/ Locations?
countryRegion=JP&
postalCode=160-0023&
key=BingMapsKey&
c=ja-jp&o=xml
adminDistrictパラメーターに村名を指定した場合です。レスポンス内容を確認すると、
- 千早赤阪村
- http://
dev. virtualearth. net/ REST/ V1/ Locations?
countryRegion=JP&
adminDistrict=千早赤阪村&
key=BingMapsKey&
c=ja-jp&o=xml
最後にローマ字で指定した場合です。cultureパラメーターを指定しない場合の規定値は、
- JP、
Tokyo、 Sinjuku-ku - http://
dev. virtualearth. net/ REST/ v1/ Locations?
countryRegion=JP&
adminDistrict=Tokyo&
locality=sinjuku-ku&
key=BingMapsKey&
o=xml
経緯度から情報取得
次は、
- http://
dev. virtualearth. net/ REST/ v1/ Locations/point?
includeEntityTypes=entityTypes&
key=BingMapsKey
pointパラメーターには、
includeEntityTypeパラメーターでは、
例をみてみましょう。
- http://
dev. virtualearth. net/ REST/ v1/ Locations/ 35. 68918461,139. 69163358?
key=BingMapsKey&c=ja-jp&o=xml
東京都庁のある経緯度ですが、
クエリーから情報取得
最後は、
- Structured URL
- http://
dev. virtualearth. net/ REST/ v1/ Locations/query?
key=BingMapsKey
- Unstructured URL
- http://
dev. virtualearth. net/ REST/ v1/ Locations?
query=query&
key=BingMapsKey
queryパラメーターに住所や施設名などを指定します。queryは省略してqと指定可能です。
例をみてみましょう。次は住所を指定した場合です。
- 東京都新宿区西新宿二丁目8番1号
- http://
dev. virtualearth. net/ REST/ v1/ Locations?
query=東京都新宿区西新宿二丁目8番1号&
key=BingMapsKey&
c=ja-jp&o=xml
次は、
- 東京
- http://
dev. virtualearth. net/ REST/ v1/ Locations?
query=東京&
key=BingMapsKey&
c=ja-jp&o=xml
東京タワーを指定した場合です。実は、
- 東京タワー
- http://
dev. virtualearth. net/ REST/ v1/ Locations?
query=東京タワー&
key=BingMapsKey&
c=ja-jp&o=xml
リクエスト方法
以上3種類のリクエスト方法を紹介しましたが、
- http://
dev. virtualearth. net/ REST/version/restApi/resourcePath?queryParameters&key=BingMapsKey
versionパラメーターとkeyパラメーターは既に説明しています。APIのバージョンと、
共通のパラメーター
queryParametersパラメーター部分に指定でき、
既に使用していましたが、
もうひとつ使用していたパラメーターが、
パラメーター |
説明 |
---|---|
output |
JSON・ json |
suppressStatus |
すべてのレスポンスのHTTPステータスを200 OKで返す。 trueまたはfalse |
jsonp | JSONP利用時に呼び出す関数名を指定。 例:jsonp=MyCallbackFunction |
jsonso | jsonp指定時、 |
レスポンス内容
レスポンスの内容をみてみましょう。Bing Maps REST Servicesでは、
{
"authenticationResultCode" : "ValidCredentials",
"brandLogoUri" : "http://dev.virtualearth.net/Branding/logo_powered_by.png",
"copyright" : "Copyright © 2010 Microsoft and its suppliers. (省略)",
"resourceSets" : [
{
"estimatedTotal" : 1,
"resources" : [
(REST APIの種類によって固有の形式の値)
]
}
],
"statusCode" : 200,
"statusDescription" : "OK",
"traceId" : "..."
}
<Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/search/local/ws/rest/v1">
<Copyright>Copyright © 2010 Microsoft and its suppliers. (省略)</Copyright>
<BrandLogoUri>http://dev.virtualearth.net/Branding/logo_powered_by.png </BrandLogoUri>
<StatusCode>200</StatusCode>
<StatusDescription>OK</StatusDescription>
<AuthenticationResultCode>ValidCredentials</AuthenticationResultCode>
<TraceId>...</TraceId>
<ResourceSets>
<ResourceSet>
<EstimatedTotal>1</EstimatedTotal>
<Resources>
(REST API の種類によって固有の形式の値)
</Resources>
</ResourceSet>
</ResourceSets>
</Response>
それぞれの要素の内容は次の通りです。JSONとXMLで名前の大文字・
要素名 | 説明 |
---|---|
StatusCode | HTTPのステータスコード |
StatusDescription | HTTPのステータスコードの説明 |
AuthenticationResultCode | 認証結果のコードの説明です。 以下の値のいずれかです。
|
TraceId | リクエストごとに一意な値 |
Copyright | コピーライト情報 |
BrandLogoUri | Bingロゴ画像のURL。詳しくは利用規約を参照。 |
ResourceSets | ResourceSetのコレクション |
ErrorDetails | エラー内容のコレクション。結果がエラーの場合に含まれています。 |
ResourceSetsはResourceSetのコレクションです。ResourceSetに含まれる内容は次の通りです。
要素名 | 説明 |
---|---|
esitmatedTotal | ResruoceSetに含まれるResrouces内の項目数の概算値 |
Resources | API固有の情報のコレクション |
このResources要素以下の内容が、
Location API固有の内容
Resources要素の中のLocation要素は、
JSON・
{
"__type": "Location:http://schemas.microsoft.com/search/local/ws/rest/v1",
"address": {
"addressLine": "2丁目8-1",
"adminDistrict": "東京都",
"countryRegion": "日本",
"formattedAddress": "東京都新宿区西新宿2丁目8-1",
"locality": "新宿区",
"postalCode": "160-0023"
},
"bbox": [
35.686481029111,
139.68893000133298,
35.691888193111005,
139.694337165333
],
"confidence": "High",
"entityType": "Address",
"name": "東京都新宿区西新宿2丁目8-1",
"point": {
"coordinates": [
35.689184611111003,
139.69163358333299
],
"type": "Point"
}
}
<Location>
<Name>東京都新宿区西新宿2丁目8-1</Name>
<Point>
<Latitude>35.689184611111</Latitude>
<Longitude>139.691633583333</Longitude>
</Point>
<BoundingBox>
<SouthLatitude>35.686481029111</SouthLatitude>
<WestLongitude>139.68893000133298</WestLongitude>
<NorthLatitude>35.691888193111005</NorthLatitude>
<EastLongitude>139.694337165333</EastLongitude>
</BoundingBox>
<EntityType>Address</EntityType>
<Address>
<AddressLine>2丁目8-1</AddressLine>
<AdminDistrict>東京都</AdminDistrict>
<CountryRegion>日本</CountryRegion>
<FormattedAddress>東京都新宿区西新宿2丁目8-1</FormattedAddress>
<Locality>新宿区</Locality>
<PostalCode>160-0023</PostalCode>
</Address>
<Confidence>High</Confidence>
</Location>
Location要素の内容は次の通りです。
要素名 | 説明 |
---|---|
Name | リソース名 |
Point | 経緯度 |
BoundingBox | エリアを示す2点の経緯度 |
EntityType | リソースの種類 |
Address | 住所 子要素に以下の項目があります。
|
Confidence | リクエストに対する一致度を以下のいずれかで粟原しています。 High、 |
Address要素は、
EntityType要素は、
今回はここまでです。次回もBing Maps REST Servicesを紹介の続きです。