- API (データ&プログラム) -API(data&program)

地図情報取得API:Bing

提供ベンダー:
システム名:
GEOSPACE CDS
利用条件:
有償オプションAPI(申込必要)

概要

API名称
Map
説明

本APIはNTTインフラネット株式会社の地図情報を取得する為のAPIです。 本APIの利用には、NTTインフラネット株式会社とのライセンス契約が必要となります。 ライセンス契約につきましては、下記の担当までお問い合わせください。

wagri-ml@nttinf.co.jp NTTインフラネット株式会社 Smart Infra推進部 GIS営業担当

データの更新頻度
カテゴリー
添付ファイル

リクエスト

URL

https://api.wagri.net/API/Public/Map/Bing/{type}/{level}/{tilePositionY}/{tilePositionX}?key={key}

説明

Bing 形式の画像を取得します。

HTTPメソッド
GET
パラメータ

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
呼出例

レスポンス

レイアウト

レスポンスデータ定義
level、tilePositionX、tilePositionY で指定した位置の地図画像を返します。 地図画像は、256×256ピクセル。GEOSPACE電子地図の場合はPNG8ビットで、それ以外はJPEG形式です。

レスポンス例

ステータスコード
コード 値の説明
400 Bad Request リクエストが不正です。
401 Unauthorized 認証情報が不正です。
403 Forbidden リソースのアクセスが禁止されています。
500 Internal Server Error サーバー内部でエラーが発生しました。

 

サンプルソースコード

ソースコード

コード例 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 つは「おまじない」と考えていただいた方が良いかもしれません。

前に戻る
上部へスクロール