/*
* Copyright (c) 2013 Bundesamt by Kartographie und Geodäsie.
* See license.txt in the BKG WebMap distribution or repository for the
* full text of the license.
*
* Author: Dirk Thalheim
*/
/**
* @requires OpenLayers/Util.js
* @requires BKGWebMap/Layer.js
*/
/**
* @namespace BKGWebMap.Layer.WebAtlasDE
*/
BKGWebMap.Layer.WebAtlasDE = BKGWebMap.Layer.WebAtlasDE || {};
/**
* Standard Zoomstufen für WMTS des WebAtlasDE
* @type {Array}
* @constant
*/
BKGWebMap.Layer.WebAtlasDE.RESOLUTIONS = [
4891.96981025128, // AdV-Level 0 (1:17471320.7508974)
2445.98490512564, // AdV-Level 1 (1:8735660.37544872)
1222.99245256282, // AdV-Level 2 (1:4367830.18772436)
611.49622628141, // AdV-Level 3 (1:2183915.09386218)
305.748113140705, // AdV-Level 4 (1:1091957.54693109)
152.874056570353, // AdV-Level 5 (1:545978.773465545)
76.4370282851763, // AdV-Level 6 (1:272989,386732772)
38.2185141425881, // AdV-Level 7 (1:136494,693366386)
19.1092570712941, // AdV-Level 8 (1:68247,3466831931)
9.55462853564703, // AdV-Level 9 (1:34123,6733415966)
4.77731426782352, // AdV-Level 10 (1:17061,8366707983)
2.38865713391176, // AdV-Level 11 (1:8530,91833539914)
1.19432856695588, // AdV-Level 12 (1:4265,45916769957)
0.59716428347794 // AdV-Level 13 (1:2132,72958384978)
];
/**
* Standartparameter für den WMS
*/
BKGWebMap.Layer.WebAtlasDE.WMS_DEFAULTS = {
attribution: BKGWebMap.Layer.COPYRIGHT,
isBaseLayer: true,
params: { format: 'image/png', transparent: false }
};
/**
* WMTS Ursprungskoordinaten.
*/
BKGWebMap.Layer.WebAtlasDE.WMTS_ORIGIN = {
'EPSG:25832': new OpenLayers.LonLat(-46133.17, 6301219.54),
'EPSG:3857': new OpenLayers.LonLat(-20037508.3428, 20037508.3428)
};
/**
* WMTS TileMatrixSets
*/
BKGWebMap.Layer.WebAtlasDE.WMTS_MATRIX_SET = {
'EPSG:25832': 'DE_EPSG_25832',
'EPSG:3857': 'DE_EPSG_3857'
};
/**
* Standartparameter für den WMTS
*/
BKGWebMap.Layer.WebAtlasDE.WMTS_DEFAULTS = {
attribution: BKGWebMap.Layer.COPYRIGHT,
isBaseLayer: true,
transitionEffect: 'resize',
style: 'default',
format: 'image/png',
requestEncoding: 'REST',
tileSize: new OpenLayers.Size(256,256),
serverResolutions: BKGWebMap.Layer.WebAtlasDE.RESOLUTIONS
};
// == basemap.de =======================================================================================================
/**
* Factory-Funktion für WMS basemap.de Web Raster Farbe
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
*/
BKGWebMap.Layer.FACTORIES['WMS.BASEMAPDE.FARBE'] = function(config, projection) {
var defaults = OpenLayers.Util.extend(null, BKGWebMap.Layer.WebAtlasDE.WMS_DEFAULTS);
defaults.name = 'basemap.de Web Raster Farbe';
defaults.url = BKGWebMap.Util.getServiceUrl( 'wms_basemapde' );
defaults.params.layers = 'de_basemapde_web_raster_farbe';
return BKGWebMap.Layer.FACTORIES['WMS'](config, projection, defaults);
};
/**
* Factory-Funktion für WMS basemap.de Web Raster Grau
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
*/
BKGWebMap.Layer.FACTORIES['WMS.BASEMAPDE.GRAU'] = function(config, projection) {
var defaults = OpenLayers.Util.extend(null, BKGWebMap.Layer.WebAtlasDE.WMS_DEFAULTS);
defaults.name = 'basemap.de Web Raster Grau';
defaults.url = BKGWebMap.Util.getServiceUrl( 'wms_basemapde' );
defaults.params.layers = 'de_basemapde_web_raster_grau';
return BKGWebMap.Layer.FACTORIES['WMS'](config, projection, defaults);
};
/**
* Factory-Funktion für WMTS basemap.de Web Raster Farbe
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
*/
BKGWebMap.Layer.FACTORIES['WMTS.BASEMAPDE.FARBE'] = function(config, projection) {
var defaults = OpenLayers.Util.extend(null, BKGWebMap.Layer.WebAtlasDE.WMTS_DEFAULTS);
defaults = OpenLayers.Util.extend(defaults, {
name: 'basemap.de Web Raster Farbe',
url: BKGWebMap.Util.getServiceUrl( 'wmts_basemapde', 'tile' ),
layer: 'de_basemapde_web_raster_farbe',
tileOrigin: BKGWebMap.Layer.WebAtlasDE.WMTS_ORIGIN[projection],
matrixSet: BKGWebMap.Layer.WebAtlasDE.WMTS_MATRIX_SET[projection] + '_ADV',
maxExtent: BKGWebMap.Util.getMaxExtent(projection, BKGWebMap.EXTENTS),
legendURL: BKGWebMap.Util.getServiceUrl( 'wms_basemapde', '?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&&FORMAT=image/png&LAYER=de_basemapde_web_raster_farbe', true )
});
if(projection == 'EPSG:3857')
defaults.serverResolutions= BKGWebMap.Layer.WebAtlasDE.RESOLUTIONS.slice(0,13);
var wmtsConfig = OpenLayers.Util.extend(defaults, config);
return BKGWebMap.Layer.FACTORIES['WMTS'](wmtsConfig, projection);
};
/**
* Factory-Funktion für WMTS basemap.de Web Raster Grau
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
*/
BKGWebMap.Layer.FACTORIES['WMTS.BASEMAPDE.GRAU'] = function(config, projection) {
var defaults = OpenLayers.Util.extend(null, BKGWebMap.Layer.WebAtlasDE.WMTS_DEFAULTS);
defaults = OpenLayers.Util.extend(defaults, {
name: 'basemap.de Web Raster Grau',
url: BKGWebMap.Util.getServiceUrl( 'wmts_basemapde', 'tile' ),
layer: 'de_basemapde_web_raster_grau',
tileOrigin: BKGWebMap.Layer.WebAtlasDE.WMTS_ORIGIN[projection],
matrixSet: BKGWebMap.Layer.WebAtlasDE.WMTS_MATRIX_SET[projection] + '_ADV',
maxExtent: BKGWebMap.Util.getMaxExtent(projection, BKGWebMap.EXTENTS),
legendURL: BKGWebMap.Util.getServiceUrl( 'wms_basemapde', '?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&&FORMAT=image/png&LAYER=de_basemapde_web_raster_grau', true )
});
if(projection == 'EPSG:3857')
defaults.serverResolutions= BKGWebMap.Layer.WebAtlasDE.RESOLUTIONS.slice(0,13);
var wmtsConfig = OpenLayers.Util.extend(defaults, config);
return BKGWebMap.Layer.FACTORIES['WMTS'](wmtsConfig, projection);
};
/**
* Factory-Funktion für basemap.de Web Raster Farbe
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
*/
BKGWebMap.Layer.FACTORIES['BASEMAPDE.FARBE'] = function(config, projection) {
var isWMTS = projection === 'EPSG:25832' || projection === 'EPSG:3857';
var factory = isWMTS ? 'WMTS.BASEMAPDE.FARBE' : 'WMS.BASEMAPDE.FARBE';
return BKGWebMap.Layer.FACTORIES[factory](config, projection);
};
/**
* Factory-Funktion für basemap.de Web Raster Grau
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
*/
BKGWebMap.Layer.FACTORIES['BASEMAPDE.GRAU'] = function(config, projection) {
var isWMTS = projection === 'EPSG:25832' || projection === 'EPSG:3857';
var factory = isWMTS ? 'WMTS.BASEMAPDE.GRAU' : 'WMS.BASEMAPDE.GRAU';
return BKGWebMap.Layer.FACTORIES[factory](config, projection);
};
// == WebAtlasDE (depreciated) =========================================================================================
/**
* Factory-Funktion für WebAtlasDE
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WMS.WEBATLASDE.FARBE'] = BKGWebMap.Layer.FACTORIES['WMS.BASEMAPDE.FARBE'];
/**
* Factory-Funktion für WebAtlasDE Graustufen
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WMS.WEBATLASDE.GRAU'] = BKGWebMap.Layer.FACTORIES['WMS.BASEMAPDE.GRAU'];
/**
* Factory-Funktion für WebAtlasDE.light
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WMS.WEBATLASDE.LIGHT.FARBE'] = BKGWebMap.Layer.FACTORIES['WMS.BASEMAPDE.FARBE'];
/**
* Factory-Funktion für WebAtlasDE.light Graustufen
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WMS.WEBATLASDE.LIGHT.GRAU'] = BKGWebMap.Layer.FACTORIES['WMS.BASEMAPDE.GRAU'];
/**
* Factory-Funktion für WebAtlasDE
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WMTS.WEBATLASDE.FARBE'] = BKGWebMap.Layer.FACTORIES['WMTS.BASEMAPDE.FARBE'];
/**
* Factory-Funktion für WebAtlasDE Graustufen
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WMTS.WEBATLASDE.GRAU'] = BKGWebMap.Layer.FACTORIES['WMTS.BASEMAPDE.GRAU'];
/**
* Factory-Funktion für WebAtlasDE.light
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WMTS.WEBATLASDE.LIGHT.FARBE'] = BKGWebMap.Layer.FACTORIES['WMTS.BASEMAPDE.FARBE'];
/**
* Factory-Funktion für WebAtlasDE.light Graustufen
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WMTS.WEBATLASDE.LIGHT.GRAU'] = BKGWebMap.Layer.FACTORIES['WMTS.BASEMAPDE.FARBE'];
/**
* Factory-Funktion für WebAtlasDE
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WEBATLASDE.FARBE'] = BKGWebMap.Layer.FACTORIES['BASEMAPDE.FARBE'];
/**
* Factory-Funktion für WebAtlasDE Graustufen
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WEBATLASDE.GRAU'] = BKGWebMap.Layer.FACTORIES['BASEMAPDE.GRAU'];
/**
* Factory-Funktion für WebAtlasDE Light
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WEBATLASDE.LIGHT.FARBE'] = BKGWebMap.Layer.FACTORIES['BASEMAPDE.FARBE'];
/**
* Factory-Funktion für WebAtlasDE Light Graustufen
*
* @param config
* @param projection
* @returns {OpenLayers.Layer.WMS}
* @deprecated
*/
BKGWebMap.Layer.FACTORIES['WEBATLASDE.LIGHT.GRAU'] = BKGWebMap.Layer.FACTORIES['BASEMAPDE.GRAU'];