<!DOCTYPE html> <html> <head> <title>Austrian Elevation Service</title> <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css" type="text/css"> <script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script> <script type="text/javascript" src="proj4js-combined.js"></script> <style> .map { background: white; height: 30%; width: 30%; } body, html { height: 100%; width: 95%; } * { font-family: Arial, Helvetica, sans-serif; padding-left: 3px; padding-right: 3px; } </style> </head> <body > <div style="height: 85%;width: 95%"> <h1>Austrian Elevation Service</h1> Dieser kostenlose Höhendatendienst für ganz Österreich basiert auf einem Geländemodel mit 10 Meter Auflösung und ist bis auf weiteres für jeden Entwickler frei zugänglich. <br> Der Dienst basiert auf einfachen statischen Textdateien, in denen die Höheninformation in der Projektion EPSG:3857 gespeichert ist. Der Betrieb eines WMS/WMTS oder Kenntnisse über die Einbindung von solchen speziellen GIS-Diensten ist nicht notwendig. Zielgruppe sind Programmierer, die kleine Programmierprojekte umsetzen und "grobe" Höheninformationen für Ihre Anwendungen benötigen: <br> <ul style="padding-left: 10px"> <li>Studenten</li> <li>Vereine</li> <li>Ein-Personen-Unternehmen</li> <li>spezialisierte Abteilungen großer Organisationen</li> <li>kleinere Gemeinden</li> <li>Informatiker, die GIS-Funktionen in Ihr IT-Projekt einbauen wollen</li> </ul> Im <a href="https://raw.githubusercontent.com/maegger/maegger.github.io/master/getAustrianElevation.html">Quellcode</a> dieser Webseite finden Sie ein Beispiel wie man mit Javascript auf diesen Höhendatendienst zugreift. Jeder Programmierer ist eingeladen mich über Quellcode in anderen Programmiersprachen, die auf diese Textdateien zugreifen können, zu informieren. <br> <br>Dieser Dienst ist sehr gut mit Anwendungen, welche zum Beispiel <a href="https://basemap.at">https://basemap.at</a> oder auch <a href="https://maegger.github.io/getOpenElevation.html">Open Street Map</a> als Hintergrundkarte nutzen, kombinierbar.<br> <br><div id="z">Drücken Sie in die Karte, um einen Höhenwert zu erhalten.</div><br> <div id="map" class="map"></div>Datenquellen: <a href="http://geoland.at">geoland.at</> / <a href="https://basemap.at">basemap.at</a><br><br>Beispielanwendungen, welche diesen Dienst bereits nutzen:<br> <a href="https://www.data.gv.at/anwendungen/abfragehilfe-hoehenpauschale-nach-rgv/">Abfragehilfe Höhenpauschale nach RGV</a> <br> <a href="https://www.data.gv.at/anwendungen/download-bemessungsniederschlag-zemokost-2-0/">Bemessungsniederschlag Zemokost 2.0</a><br><br> Für die Richtigkeit, Anwendbarkeit, Verfügbarkeit und Vollständigkiet dieses Dienstes wird keine Garantie oder Haftung übernommen. Achtung: Die Höhendaten basieren auf einem Geländemodel mit 10 m Auflösung und sind auf Ganzzahlen gerundet. Weiters erfolgte eine Transformation der Höhendaten von EPSG 31287 auf EPSG 3857. Wenn sie genauere Daten benötigen, kontaktieren Sie bitte die GIS-Abteilungen der Bundesländer.<br> Falls Sie diesen Dienst in Ihrer Anwendung verwenden, ist laut <a href="https://creativecommons.org/licenses/by/3.0/at/deed.de">LIZENZ "CC BY 3.0 AT" </a> eine Nennung der Datenquelle: <a href="http://geoland.at">geoland.at</a> erforderlich. Weiters muss dieser Vermerk angegeben werden: Copyright (c) 2017, Manfred Egger. <br><a align="right" href="https://egger-gis.at"><img src="logo.png"></a> </div> <script> var capabilitiesUrl = 'https://www.basemap.at/wmts/1.0.0/WMTSCapabilities.xml'; // HiDPI support: // * Use 'bmaphidpi' layer (pixel ratio 2) for device pixel ratio > 1 // * Use 'geolandbasemap' layer (pixel ratio 1) for device pixel ratio == 1 var hiDPI = ol.has.DEVICE_PIXEL_RATIO < 1; var layer = hiDPI ? 'bmaphidpi' : 'bmaporthofoto30cm'; var tilePixelRatio = hiDPI ? 2 : 1; var map = new ol.Map({controls: ol.control.defaults().extend([ new ol.control.ScaleLine() ]), target: 'map', view: new ol.View({ center: [1822642, 6141614], zoom: 17 }) }); $.ajax(capabilitiesUrl).then(function (response) { var result = new ol.format.WMTSCapabilities().read(response); var options = ol.source.WMTS.optionsFromCapabilities(result, { layer: layer, matrixSet: 'google3857', requestEncoding: 'REST', style: 'bmaporthofoto30cm' }); options.tilePixelRatio = tilePixelRatio; map.addLayer(new ol.layer.Tile({ source: new ol.source.WMTS(options) })); map.addLayer(vector); }); map.on('click', function (evt) { nodata = false; var coord = evt.coordinate; var x = coord[0]; var database = ""; var mod_x_path = x % 20000; path_x = x - mod_x_path; var y = coord[1]; database = path_x ; var mod_y = y % 10; var raster_y = y - mod_y; var mod_x = x % 10; var raster_x = x - mod_x; var txtFile = new XMLHttpRequest(); txtFile.open("GET", "https://raw.githubusercontent.com/maegger/" + database + "/master/" + raster_y + ".txt", true); txtFile.onreadystatechange = function () { if (txtFile.readyState === 4) { // Makes sure the document is ready to parse. if (txtFile.status === 200) { // Makes sure it's found the file. inhalt = txtFile.responseText; liste = inhalt.split("\n"); var arrayLength = liste.length; var len = raster_x + ""; document.getElementById("z").innerHTML = "Keine Höhendaten an dieser Stelle verfügbar..."; for (var i = 0; i < arrayLength; i++) { var zeile = liste[i]; var res = zeile.substring(0, len.length); if (res === len) { var hoe = Math.round(zeile.split(" ")[1]); document.getElementById("z").innerHTML = "Seehöhe : " + hoe + " m "; break; } } } else { document.getElementById("z").innerHTML = "Keine Höhendaten an dieser Stelle verfügbar..."; } } } txtFile.send(null); }); </script> </body> </html>