2018.10.31 UPDATE Map:/API/Public/Map/Wmts/{layer}/{style}/{key}/{tileMatrixSet}/{tileMatrix}/{tileRow}/{tileCol}.{format}

ベンダー名:NTT空間情報

システム名:GEOSPACE CDS

API

API名
Map
説明
NTT空間情報提供、地図情報を取得する
ベンダー依存
しない
カテゴリー
地図

メソッド

URL
Wmts/{layer}/{style}/{key}/{tileMatrixSet}/{tileMatrix}/{tileRow}/{tileCol}.{format}
説明
WMTS 形式の画像を取得します。
HTTPメソッド
GET
認証方式
ベンダーシステム認証
レスポンス
ステータス 意味
400 Bad Request リクエストが不正です。
401 Unauthorized 認証情報が不正です。
403 Forbidden リソースのアクセスが禁止されています。
500 Internal Server Error サーバー内部でエラーが発生しました。

コード例

●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
style 表示方法。default を指定 string
tileMatrixSet タイルセット一意指定子。EPSG3857 を指定 string
tileMatrix タイル一意指定子。ズームレベルを指定。 integer
tileRow タイル画像Y方向位置。取得位置の緯度を、Y 方向位置に変換した値 integer
tileCol タイル画像X方向位置。取得位置の経度を、X 方向位置に変換した値 integer
format 画像フォーマット。GEOSPACE 電子地図の場合はpng、航空写真/衛星画像 の場合はjpg string
key アクセス用一時キー。認証サービスより取得した本サービスアクセス用一時キー(認証サービスのレスポンスパラメータ 「authorizeKey」) string

URLデータ例

レスポンスデータ定義

tileMatric、tileRow、tileCol で指定した位置の地図画像を返します。 地図画像は、256x256ピクセル。GEOSPACE電子地図の場合はPNG8ビットで、それ以外はJPEG形式です
Name Description Type Additional information

レスポンスデータ例