地図情報取得API:Bing
- 公開日
- 更新日 2024-11-19
利用条件
概要
API名称
カテゴリー
説明
本APIはNTTインフラネット株式会社の地図情報を取得する為のAPIです。 本APIの利用には、NTTインフラネット株式会社とのライセンス契約が必要となります。 ライセンス契約につきましては、下記の担当までお問い合わせください。
wagri-ml@nttinf.co.jp NTTインフラネット株式会社 Smart Infra推進部 GIS営業担当
添付ファイル
ー
データの更新頻度
リクエスト
新URL
New!
ー
旧URL(2025年度末で終了予定)
https://api.wagri.net/API/Public/Map/Bing/{type}/{level}/{tilePositionY}/{tilePositionX}?key={key}
説明
Bing 形式の画像を取得します。
HTTPメソッド
パラメータ
URLデータ定義
Bing形式地図画像取得のパラメータ
| 名称 | 値 | 型 | 値の説明 |
|---|---|---|---|
| type | 地図種別。GEOSPACE 電子地図の場合はroad、航空写真の場合はaerial、衛星画像の場合はsatellite、ハイブリッドの場合はhybrid | string | Required |
| level | 地図表示レベル。地図画像表示縮尺に応じたレベル | integer | Required |
| tilePositionY | タイル画像Y方向位置。取得位置の緯度を、Y 方向位置に変換した値 | integer | Required |
| tilePositionX | タイル画像X方向位置。取得位置の経度を、X 方向位置に変換した値 | integer | Required |
| key | アクセス用一時キー。認証サービスより取得した本サービスアクセス用一時キー(認証サービスのレスポンスパラメータ 「authorizeKey」) | string | Required |
新呼出例
New!
ー
旧呼出例(2025年度末で終了予定)
ー
レスポンス
レイアウト
レスポンスデータ定義
level、tilePositionX、tilePositionY で指定した位置の地図画像を返します。 地図画像は、256×256ピクセル。GEOSPACE電子地図の場合はPNG8ビットで、それ以外はJPEG形式です。
レスポンス例
ー
ステータスコード
| コード | 値 | 値の説明 |
|---|---|---|
| 400 | Bad Request | リクエストが不正です。 |
| 401 | Unauthorized | 認証情報が不正です。 |
| 403 | Forbidden | リソースのアクセスが禁止されています。 |
| 500 | Internal Server Error | サーバー内部でエラーが発生しました。 |
サンプルソースコード
プログラム記述例(WAGRI共通)
import requests
url = "https://api.wagri.net/API/Public/AgriculturalLand/SearchByCityCode"
payload = {
'CityCode': '432041'
}
headers = {
'X-Authorization': 'アクセストークン',
}
response = requests.get(url, headers=headers, params=payload)
print(response.text)
プログラム記述例(個別API)
コード例 JavaScript
●index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GEOSPACE CLOUD WMTS at OpenLayers</title>
<style>
html, body {
margin : 0;
padding : 0;
height : 100%;
width : 100%;
font-size : 80%;
}
#map {
width : 100%;
height : 100%;
background-color : #DDDDDD;
}
</style>
<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script src="http://code.jquery.com/jquery-1.7.min.js"></script>
<script type="text/javascript" src="app.js"></script>
</head>
<body>
<!-- 地図の表示 -->
<div id="map"></div>
</body>
</html>
●app.js
var map;
// Geospace CDS API キー格納
var authkey;
// OpenLayers 初期化
var init = function() {
$.getJSON(
"http://CDS 認証&JSONP 返却用Web サービスURL?callback=?",
null,
function(data){
authkey = data.authorizeKey;
map = new OpenLayers.Map({
div : "map",
units : "m",
projection : "EPSG:3857",
displayProjection: new OpenLayers.Projection("EPSG:4326"),
maxResolution : 78271.52,
numZoomLevels : 19,
maxExtent : new OpenLayers.Bounds(
-20037508.34, -20037508.34, 20037508.34, 20037508.34),
controls : [
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.ScaleLine(),
new OpenLayers.Control.MouseDefaults(),
new OpenLayers.Control.LayerSwitcher(),
new OpenLayers.Control.Attribution()
]
});
mouseposition = new OpenLayers.Control.MousePosition();
map.addControl(mouseposition);
// Geospace CDS 認可キー自動取得処理
var getAuthKey = function(){
$.getJSON(
"http://CDS 認証&JSONP 返却用Web サービスURL?callback=?",
null,
function(d) { authkey = d.authorizeKey; }
);
}
// GEOSPACE CDS WMTS レイヤをセットします
var getWmtsLayers = function(authKey) {
var matrixIds = new Array(19);
for (var i = 1; i <= 19; i++) {
matrixIds[i - 1] = new Object();
matrixIds[i - 1].identifier = "" + i;
}
// CDS URL
var geospaceUrl = "http://cds.geospace.jp/images/wmts";
// 電子地図
var road = new OpenLayers.Layer.WMTS({
name : "Road by WMTS",
url : geospaceUrl,
requestEncoding : "REST",
layer : "road",
matrixSet : "EPSG3857",
format : "image/png",
style : "default",
matrixIds : matrixIds,
isBaseLayer : true,
dimensions : ["KEY"],
params : {KEY: authkey},
transitionEffect : "resize",
sphericalMercator: true,
buffer : 1
});
// 航空写真
var aerial = new OpenLayers.Layer.WMTS({
name : "Aerial by WMTS",
url : geospaceUrl,
requestEncoding : "REST",
layer : "aerial",
matrixSet : "EPSG3857",
format : "image/jpg",
style : "default",
matrixIds : matrixIds,
dimensions : ["KEY"],
params : {KEY: authkey},
transitionEffect : "resize",
sphericalMercator: true,
buffer : 1
});
// 衛星画像
var satellite = new OpenLayers.Layer.WMTS({
name : "Satellite by WMTS",
url : geospaceUrl,
requestEncoding : "REST",
layer : "satellite",
matrixSet : "EPSG3857",
format : "image/jpg",
style : "default",
matrixIds : matrixIds,
dimensions : ["KEY"],
params : {KEY: authkey},
transitionEffect : "resize",
sphericalMercator: true,
buffer : 1
});
// ハイブリッド
var hybrid = new OpenLayers.Layer.WMTS({
name : "Hybrid by WMTS",
url : geospaceUrl,
requestEncoding : "REST",
layer : "hybrid",
matrixSet : "EPSG3857",
format : "image/jpg",
style : "default",
matrixIds : matrixIds,
dimensions : ["KEY"],
params : {KEY: authkey},
transitionEffect : "resize",
sphericalMercator: true,
buffer : 1
});
return [road, aerial, hybrid];
}
// GEOSPACE CDS Bing レイヤをセットします
var getBingLayers = function(authKey) {
// CDS URL 及び基本パラメータ
var geospaceUrl = "http://cds.geospace.jp/images/bing";
var bingParam = "${z}/${y}/${x}?key=" + authKey;
// 電子地図
OpenLayers.Layer.GeospaceBingRoad = OpenLayers.Class(OpenLayers.Layer.XYZ, {
name: "Road by Bing",
sphericalMercator: true,
url: geospaceUrl + '/road/' + bingParam,
CLASS_NAME: "OpenLayers.Layer.GeospaceBingRoad"
});
// 航空写真
OpenLayers.Layer.GeospaceBingAerial = OpenLayers.Class(OpenLayers.Layer.XYZ, {
name: "Aerial by Bing",
sphericalMercator: true,
url: geospaceUrl + '/aerial/' + bingParam,
CLASS_NAME: "OpenLayers.Layer.GeospaceBingAerial"
});
// 衛星画像
OpenLayers.Layer.GeospaceBingSatellite = OpenLayers.Class(OpenLayers.Layer.XYZ, {
name: "Satellite by Bing",
sphericalMercator: true,
url: geospaceUrl + '/satellite/' + bingParam,
CLASS_NAME: "OpenLayers.Layer.GeospaceBingSatellite"
});
// ハイブリッド
OpenLayers.Layer.GeospaceBingHybrid = OpenLayers.Class(OpenLayers.Layer.XYZ, {
name: "Hybrid by Bing",
sphericalMercator: true,
url: geospaceUrl + '/hybrid/' + bingParam,
CLASS_NAME: "OpenLayers.Layer.GeospaceBingHybrid"
});
var road = new OpenLayers.Layer.GeospaceBingRoad();
var aerial = new OpenLayers.Layer.GeospaceBingAerial();
var satellite = new OpenLayers.Layer.GeospaceBingSatellite();
var hybrid = new OpenLayers.Layer.GeospaceBingHybrid();
return [road, aerial, satellite, hybrid];
}
// 処理の実施
$(document).ready(function(){
// OpenLayers 初期化処理
init();
// Geospace CDS 認可キー自動取得処理起動
setInterval(getAuthKey,360000);
});
通常のWMTS との違いはdimensions/params を指定していることです。 OpenLayers では、WMTS のDimension をdimensions プロパティ、params プロパ ティの2 つで指定します。本サービスではdimension に認可キーをセットすることで REST 形式をサポートするようにしています。 なお、dimensions 配列の各項目を小文字から大文字に変換した上で使用するため、 dimensions とparams のキー項目(この場合は’KEY’)は双方大文字としてください。 dimensions とparams の2 つは「おまじない」と考えていただいた方が良いかもしれません。

