Ich glaube maxbe du hattest recht. Die Daten waren im BMN, ich hab sie jetzt in EPSG 90013 transformiert (hoffe ich jedenfalls).
(Das obige Beispiel war nur als demo, dass es mit nur einem Layer funktioniert.)
Hier der aktuelle Code:
<!DOCTYPE HTML>
<html>
<head>
<title>Geoportal</title>
<link rel="stylesheet" href="style.css" type="text/css">
<style type="text/css">
html, body, #map {
width: 100%;
height: 100%;
margin: 0;
}
#text {
position: absolute;
top: 1em;
right: 1em;
width: auto;
z-index: 20000;
background-color: white;
padding: 0 0.5em 0.5em 0.5em;
}
#logo {
float:right;
}
</style>
<script src="http://www.openlayers.org/api/OpenLayers.js" type="text/javascript">
</script>
<script defer="defer" type="text/javascript">
var map;
var untiled;
var tiled;
var pureCoverage = false;
// pink tile avoidance
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
// make OL compute scale according to WMS spec
OpenLayers.DOTS_PER_INCH = 25.4 / 0.28;
function init(){
// if this is just a coverage or a group of them, disable a few items,
// and default to jpeg format
format = 'image/png';
var bounds = new OpenLayers.Bounds(
1784389.363499999, 6058681.3517,
1794735.6761999987, 6066740.533
);
var options = {
controls: [],
maxExtent: bounds,
maxResolution: 40.41528398437367,
projection: "EPSG:900913",
units: 'm'
};
map = new OpenLayers.Map('map', options);
// setup tiled layer
tiled = new OpenLayers.Layer.WMS(
"GISnk:nkpoi900913 - Tiled", "http://localhost:8080/geoserver/GISnk/wms",
{
LAYERS: 'GISnk:nkpoi900913',
STYLES: '',
format: format,
tiled: true,
tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom
},
{
buffer: 0,
displayOutsideMaxExtent: true,
isBaseLayer: false,
yx : {'EPSG:900913' : false}
}
);
osm = new OpenLayers.Layer.OSM();
map.addLayers(tiled, osm);
// build up all controls
map.addControl(new OpenLayers.Control.PanZoomBar({
position: new OpenLayers.Pixel(2, 15)
}));
map.addControl(new OpenLayers.Control.Navigation());
map.addControl(new OpenLayers.Control.Scale($('scale')));
map.addControl(new OpenLayers.Control.MousePosition({element: $('location')}));
map.zoomToExtent(bounds);
// support GetFeatureInfo
map.events.register('click', map, function (e) {
document.getElementById('nodelist').innerHTML = "Loading... please wait...";
var params = {
REQUEST: "GetFeatureInfo",
EXCEPTIONS: "application/vnd.ogc.se_xml",
BBOX: map.getExtent().toBBOX(),
SERVICE: "WMS",
INFO_FORMAT: 'text/html',
QUERY_LAYERS: map.layers[0].params.LAYERS,
FEATURE_COUNT: 50,
Layers: 'GISnk:nkPOIs1',
WIDTH: map.size.w,
HEIGHT: map.size.h,
format: format,
styles: map.layers[0].params.STYLES,
srs: map.layers[0].params.SRS};
// handle the wms 1.3 vs wms 1.1 madness
if(map.layers[0].params.VERSION == "1.3.0") {
params.version = "1.3.0";
params.j = parseInt(e.xy.x);
params.i = parseInt(e.xy.y);
} else {
params.version = "1.1.1";
params.x = parseInt(e.xy.x);
params.y = parseInt(e.xy.y);
}
});
}
</script>
</head>
<body onload="init();">
<div id="map"></div>
<div id="text">
<div id="logo">
<img src="nklogokl.png" alt="Logo">
</div>
<h1 id="title">Geoportal</h1>
<div id="tags">
GIS, Geoportal
</div>
<p id="shortdesc">
Test Test TEst
</p>
<div id="docs">
<p>Test Test </p>
<p>Test Link
<a href="www.test.gv.at" target="_blank">www.test.gv.at</a>
Test.</p>
</div>
</div>
</body>
</html>
QGIS sagt beim WMS anfordern, dass es ein EPSG900913 ist. Auch wenn ich einen OSM Layer in QGIS hinzufüge passt der Standort überein.
Leider gehts noch immer nicht.
Kann der
map.addLayers(tiled, osm);
Code fehlerhaft sein? Wenn ich ihn aus der Layer-Vorschau vom Geoserver kopiere sind die Layer noch in eckigen Klammern. (Geht aber auch nicht)
