Source: BKGWebMap/Constants.js

/*
 * 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
 */


/**
 * Definiert die Standard URL für Dienste des BKGs Damit Cookies bei XHR gesendet werden, muss das Protokoll der Seite
 * übereinstimmen.
 * @constant BKGWebMap.BASE_URL
 * @type {string}
 */
BKGWebMap.BASE_URL = "http://sg.geodatenzentrum.de/";

/**
 * Hier kann ein UUID übergeben werden, der zur Authentifizierung beim Diensteaufruf verwendet werden soll. Dies wird
 * in der Funktion BKGWebMap.getServiceUrl(service) ausgewertet. ACHTUNG Um den Missbrauch dieses
 * Authentifizierungstokens zu verhindern, sollte der UUID nur in internen Anwendungen verwendet werden.
 * @constant BKGWebMap.UUID
 * @type {string}
 */
BKGWebMap.UUID = null;

/**
 * Hier kann eine App-ID übergeben werden, die zur Token basierten Authentifizierung für zugriffsgeschützte Dienste
 * verwendet werden soll. Zusätzlich muss BKGWebMap.APP_DOMAIN angegeben werden, damit dies genutzt werden kann.
 * Um einen Dienst dann mit Token basierter Auhtentifizierung zu nutzen, muss die URL des Dienstes per
 * BKGWebMap.Util.getServiceUrl generiert werden.
 * @constant BKGWebMap.APP_ID
 * @type {string}
 */
BKGWebMap.APP_ID = null;

/**
 * Hier kann eine App-Domain übergeben werden, die zur Token basierten Authentifizierung für zugriffsgeschützte Dienste
 * verwendet werden soll. Zusätzlich muss BKGWebMap.APP_ID angegeben werden, damit dies genutzt werden kann.
 * Um einen Dienst dann mit Token basierter Auhtentifizierung zu nutzen, muss die URL des Dienstes per
 * BKGWebMap.Util.getServiceUrl generiert werden.
 * @constant BKGWebMap.APP_DOMAIN
 * @type {string}
 */
BKGWebMap.APP_DOMAIN = null;

/**
 * Standardausdehnungen für Deutschland in verschiedenen Projektionen
 * @constant BKGWebMap.EXTENTS
 */
BKGWebMap.EXTENTS = {
  'EPSG:4326': [2.07498609301,46.4840034677,18.6083668593,55.0242047281],
  'EPSG:4258': [2.07498609301,46.4840034677,18.6083668593,55.0242047281],
  'EPSG:3857': [230986.395277,5858253.27918,2071473.92327,7366565.17486],
  'EPSG:4839': [-588294.218731,-816874.468761,697029.429872,782107.671922],
  // (U)TM
  'EPSG:25832': [-31457.2, 5171172.3, 1113266.0, 6139784.2],
  'EPSG:25833': [-491561.055747,5229609.57213,730630.700903,6103438.87585],
  'EPSG:4647': [31968542.8007,5171172.29888,33113265.9755,6139784.18944],
  'EPSG:5650': [32331206.6246,5023799.91841,33927672.7555,6400503.87422],
  'EPSG:3034': [3411878.17838,2238751.12694,4531884.85677,3156427.30041],
  'EPSG:3035': [3713155.60384,2629215.23991,4870256.61293,3579362.40517],
  'EPSG:3044': [-31457.1993059,5171172.29888,1113265.97552,6139784.18944],
  'EPSG:3045': [-491561.055747,5229609.57213,730630.700903,6103438.87585],
  // GK
  'EPSG:31466': [2198674.97164,5156935.03086,3304138.59087,6172478.95319],
  'EPSG:31467': [2968406.76329,5172797.1438,4113580.06377,6141807.67656],
  'EPSG:31468': [3738224.07893,5197527.23054,4922420.07541,6119480.25774],
  'EPSG:31469': [4508181.06836,5231250.21482,5730855.01451,6105438.37812],
  'EPSG:5676': [2198674.97164,5156935.03086,3304138.59087,6172478.95319],
  'EPSG:5677': [2968406.76329,5172797.1438,4113580.06377,6141807.67656],
  'EPSG:5678': [3738224.07893,5197527.23054,4922420.07541,6119480.25774],
  'EPSG:5679': [4508181.06836,5231250.21482,5730855.01451,6105438.37812],

  'EPSG:2397': [2801653.04641,5050072.5876,4398909.7451,6362436.76306],
  'EPSG:2398': [3566148.11787,5046287.77486,5163397.24898,6367094.20891],
  'EPSG:2399': [4330719.40757,5025898.84992,5927851.03379,6403177.11818]
};

/**
 * Standardausdehnung für Deutschland in UTM32
 * @constant BKGWebMap.EXTEND
 * @depreciated Künftig nur noch BKGWebMap.EXTENTS verwenden, um Projektionsabhängige Ausdehnungen zu ermöglichen.
 */
BKGWebMap.EXTENT = BKGWebMap.EXTENTS['EPSG:25832'];

/**
 * native Projektion des WebAtlasDE
 * @constant BKGWebMap.PROJECTION
 */
BKGWebMap.PROJECTION = 'EPSG:25832';

/**
 * Namen für Projektionen
 * @constant BKGWebMap.UNITS
 */
BKGWebMap.PROJECTION_ALIAS = {
  'EPSG:4326': 'WGS 84',
  'EPSG:4258': 'ETRS89',
  'EPSG:3857': 'WGS84 Web Mercator (Auxiliary Sphere)',
  'EPSG:4839': 'ETRS89 / LCC Germany (N-E)',
  // (U)TM
  'EPSG:25832': 'ETRS89 / UTM zone 32N',
  'EPSG:25833': 'ETRS89 / UTM zone 33N',
  'EPSG:4647': 'ETRS89 / UTM zone 32N (zE-N)',
  'EPSG:5650': 'ETRS89 / UTM zone 33N (zE-N)',
  'EPSG:3034': 'ETRS89 / LCC Europe',
  'EPSG:3035': 'ETRS89 / LAEA Europe',
  'EPSG:3044': 'ETRS89 / UTM zone 32N (N-E)',
  'EPSG:3045': 'ETRS89 / UTM zone 33N (N-E)',
  // GK
  'EPSG:31466': 'DHDN / 3-degree Gauss-Kruger zone 2',
  'EPSG:31467': 'DHDN / 3-degree Gauss-Kruger zone 3',
  'EPSG:31468': 'DHDN / 3-degree Gauss-Kruger zone 4',
  'EPSG:31469': 'DHDN / 3-degree Gauss-Kruger zone 5',
  'EPSG:5676': 'DHDN / 3-degree Gauss-Kruger zone 2 (E-N)',
  'EPSG:5677': 'DHDN / 3-degree Gauss-Kruger zone 3 (E-N)',
  'EPSG:5678': 'DHDN / 3-degree Gauss-Kruger zone 4 (E-N)',
  'EPSG:5679': 'DHDN / 3-degree Gauss-Kruger zone 5 (E-N)',

  'EPSG:2397': 'Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3',
  'EPSG:2398': 'Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4',
  'EPSG:2399': 'Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5'
};

/**
 * Standard Maßeinheiten für Projektionen
 * @constant BKGWebMap.UNITS
 */
BKGWebMap.UNITS = {
  'EPSG:4326': 'degree',
  'EPSG:4258': 'degree',
  'EPSG:3857': 'm',
  'EPSG:4839': 'm',
  // (U)TM
  'EPSG:25832': 'm',
  'EPSG:25833': 'm',
  'EPSG:4647': 'm',
  'EPSG:5650': 'm',
  'EPSG:3034': 'm',
  'EPSG:3035': 'm',
  'EPSG:3044': 'm',
  'EPSG:3045': 'm',
  // GK
  'EPSG:31466': 'm',
  'EPSG:31467': 'm',
  'EPSG:31468': 'm',
  'EPSG:31469': 'm',
  'EPSG:5676': 'm',
  'EPSG:5677': 'm',
  'EPSG:5678': 'm',
  'EPSG:5679': 'm',

  'EPSG:2397': 'm',
  'EPSG:2398': 'm',
  'EPSG:2399': 'm'
};

/**
 * Standardzoomstufen für UTM32s. Dies sind die nativen Zoomstufen des WebAtlasDE und werden für alle metrischen
 * Koordinatensysteme verwendet.
 * @constant BKGWebMap.RESOLUTIONS
 */
BKGWebMap.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)
];

/**
 * Erweiterte Maßstabsstufen für UTM32s. Erweitert Standardzoomstufen um 30cm/Pixel und 15cm/Pixel.
 * @constant BKGWebMap.Map.RESOLUTIONS_EXTENDED
 */
BKGWebMap.RESOLUTIONS_EXTENDED = BKGWebMap.RESOLUTIONS.slice();
BKGWebMap.RESOLUTIONS_EXTENDED.push(0.298582141738970);
BKGWebMap.RESOLUTIONS_EXTENDED.push(0.149291070869485);

/**
 * Standardzoomstufen für WGS84. Dies sind die nativen Zoomstufen des WebAtlasDE und werden für alle geographischen
 * Koordinatensysteme verwendet.
 * @constant BKGWebMap.RESOLUTIONS
 */
BKGWebMap.RESOLUTIONS_DEGREE = [
  0.0439453125, // AdV-Level 0 (1:17471320.7508974)
  0.02197265625, // AdV-Level 1 (1:8735660.37544872)
  0.010986328125, // AdV-Level 2 (1:4367830.18772436)
  0.0054931640625, // AdV-Level 3 (1:2183915.09386218)
  0.00274658203125, // AdV-Level 4 (1:1091957.54693109)
  0.001373291015625, // AdV-Level 5 (1:545978.773465545)
  0.0006866455078125, // AdV-Level 6 (1:272989,386732772)
  0.00034332275390625, // AdV-Level 7 (1:136494,693366386)
  0.000171661376953125, // AdV-Level 8 (1:68247,3466831931)
  0.0000858306884765625,  // AdV-Level 9 (1:34123,6733415966)
  0.0000429153442382813, // AdV-Level 10 (1:17061,8366707983)
  0.0000214576721191406, // AdV-Level 11 (1:8530,91833539914)
  0.0000107288360595703, // AdV-Level 12 (1:4265,45916769957)
  0.00000536441802978516 // AdV-Level 13 (1:2132,72958384978)
];

/**
 * Erweiterte Maßstabsstufen für UTM32s. Erweitert Standardzoomstufen um 30cm/Pixel und 15cm/Pixel.
 * @constant BKGWebMap.Map.RESOLUTIONS_EXTENDED
 */
BKGWebMap.RESOLUTIONS_DEGREE_EXTENDED = BKGWebMap.RESOLUTIONS_DEGREE.slice();
BKGWebMap.RESOLUTIONS_DEGREE_EXTENDED.push(0.00000268220901489258);
BKGWebMap.RESOLUTIONS_DEGREE_EXTENDED.push(0.00000134110450744629);

/**
 * Visualisierungsstyle für Vektordaten
 * @constant BKGWebMap.Map.RESOLUTIONS_EXTENDED
 */
BKGWebMap.STYLES = {
  /**
   * Gelber Visualisierungsstil
   */
  'GELB': {
    Point: {
      pointRadius: 4,
      fillColor: "#ffee00",
      fillOpacity: 0.5,
      strokeWidth: 1,
      strokeOpacity: 1,
      strokeColor: "#ffee00"
    },
    Line: {
      strokeWidth: 2,
      strokeOpacity: 1,
      strokeColor: "#ffee00",
      strokeDashstyle: "dash"
    },
    Polygon: {
      strokeWidth: 2,
      strokeOpacity: 1,
      strokeColor: "#ffee00",
      strokeDashstyle: "dash",
      fillColor: "white",
      fillOpacity: 0.3

    }
  },
  /**
   * Roter Visualisierungsstil
   */
  'ROT': {
    Point: {
      pointRadius: 4,
      fillColor: "cc0000",
      fillOpacity: 0.5,
      strokeWidth: 1,
      strokeOpacity: 1,
      strokeColor: "#cc0000"
    },
    Line: {
      strokeWidth: 2,
      strokeOpacity: 1,
      strokeColor: "#cc0000",
      strokeDashstyle: "dash"
    },
    Polygon: {
      strokeWidth: 2,
      strokeOpacity: 1,
      strokeColor: "#cc0000",
      strokeDashstyle: "dash",
      fillColor: "white",
      fillOpacity: 0.3

    }
  }
};