2018.10.31 更新
Map:Wmts/{layer}/{style}/{key}/{tileMatrixSet}/{tileMatrix}/{tileRow}/{tileCol}.{format}
API
- API名
- Map
- 説明
-
本APIはNTTインフラネット株式会社の地図情報を取得する為のAPIです。 本APIの利用には、NTTインフラネット株式会社とのライセンス契約が必要となります。 ライセンス契約につきましては、下記の担当までお問い合わせください。 wagri-ml@nttinf.co.jp NTTインフラネット株式会社 Smart Infra推進部 GIS営業担当
- 依存設定
- しない
- カテゴリー
- 地図 dd >
メソッド
- URL
- Wmts/{layer}/{style}/{key}/{tileMatrixSet}/{tileMatrix}/{tileRow}/{tileCol}.{format}
- 説明
-
WMTS 形式の画像を取得します。
- HTTPメソッド
- GET
- 認証方式
- ベンダーシステム認証
- レスポンス
-
ステータス 意味 400 Bad Request リクエストが不正です。 403 Forbidden リソースのアクセスが禁止されています。 500 Internal Server Error サーバー内部でエラーが発生しました。 401 Unauthorized 認証情報が不正です。
コード例
●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 つは「おまじない」と考えていただいた方が良いかもしれません。
URLデータ定義
WMTS形式地図画像取得のパラメータ
Name | Description | Type | Additional information |
---|---|---|---|
layer | 地図種別。GEOSPACE 電子地図の場合はroad、航空写真の場合はaerial衛星画像の場合はsatelliteハイブリッドの場合はhybrid | string | Required |
style | 表示方法。default を指定 | string | Required |
tileMatrixSet | タイルセット一意指定子。EPSG3857 を指定 | string | Required |
tileMatrix | タイル一意指定子。ズームレベルを指定。 | integer | Required |
tileRow | タイル画像Y方向位置。取得位置の緯度を、Y 方向位置に変換した値 | integer | Required |
tileCol | タイル画像X方向位置。取得位置の経度を、X 方向位置に変換した値 | integer | Required |
format | 画像フォーマット。GEOSPACE 電子地図の場合はpng、航空写真/衛星画像 の場合はjpg | string | Required |
key | アクセス用一時キー。認証サービスより取得した本サービスアクセス用一時キー(認証サービスのレスポンスパラメータ 「authorizeKey」) | string | Required |
レスポンスデータ定義
tileMatric、tileRow、tileCol で指定した位置の地図画像を返します。
地図画像は、256x256ピクセル。GEOSPACE電子地図の場合はPNG8ビットで、それ以外はJPEG形式です
レスポンス説明
参考として、取得結果の一例を以下に表示します。
電子地図データ

航空写真データ
