Hi Community,
ungeachtet von meinen laufenden Recherchen zu einer fertigen Kartenlösung, die bei 123map tatsächlich am besten aufgehoben scheint, habe ich mich daran gemacht, eine eigene Kartenapplikation zu schreiben, um mich überhaupt mal an die Grundfunktionen und Anforderungen einer Gesamtkarte für alle meine Daten zu gewöhnen und den Nutzern vorab schonmal ein Tool anzubieten, falls das eigentliche Projekt noch länger warten muss.
Diesbezüglich habe ich mir einen WMS-Zugang gebastelt, der über OpenLayers meine Daten als single-tile anzeigt. Soweit funktioniert das super und die Anzeige scheint von den Koordinaten her auch perfekt zu passen. Zumindest sind alle Blitzeinschläge dort, wo ich sie auch mit anderen Methoden wiederfinden kann.
Das von mir genutzte Beispiel nutzte dabei eine Hintergrundkarte aus den OL-Examples. Dann wollte ich mal einen OSM-Layer zuschalten oder einen Cloudmap-Tileserver, aber das hat mir das Koordinatensystem durchgerüttelt. Scheinbar kommen die Koordinaten im WMS nicht mehr als Dezimalgrad an, sondern in irgendeinem anderen Format. 123423.76 - so in etwa sehen die Daten aus.
Nun ist die Frage, wie ich die Hintergrundkarte bzw. das Script so umstellen kann, dass mein WMS wieder korrekt angezeigt wird. Ziel wäre nichts am WMS zu ändern, da ich dort schön verzerrungsfreie Dezimalgradkoordinaten als Basis nutze. Andernfalls müsste ich dann wahrscheinlich umrechnen - aber in welches System? Ich kann nirgendwo etwas dazu finden, welches Standardsystem genutzt wird, wenn der OSM Layer gerufen wird. Mich wundert auch, dass ein WMS Layer scheinbar den Standard automatisch umstellt und ein dazugeschalteter OSM layer ebenfalls sein System drüberstülpt.
Anbei mein Minimal-Script:
var map = new OpenLayers.Map(‘map’);
// OSM Layer - wenn ich den zuschalte, kommt vom WMS nur noch Unfug
//var layer = new OpenLayers.Layer.OSM();
//map.addLayer(layer);
// Tile-Server aus den OpenLayers-Examples
var layer = new OpenLayers.Layer.WMS( “OpenLayers WMS”,
“http://vmap0.tiles.osgeo.org/wms/vmap0”, {layers: ‘basic’}, { transitionEffect: ‘resize’ });
map.addLayer(layer);
// Mein eigener WMS
var mein_wms_layer = new OpenLayers.Layer.WMS(“Daten”,
“…/render_wms.php”, {layers: ‘basic’},
{ singleTile: true, ratio: 1 } );
mein_wms_layer.addOptions({isBaseLayer: false});
map.addLayer(mein_wms_layer);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();