Hallo,
wij gebruiken in een project een nieuwekaart laag boven 900913 tiles en
hebben hetzelfde probleem
Het lijkt aan de WMS van de nieuwekaart te liggen.
Onze oplossing is een verschuiving met een offset van x: 47 en y: 170
(zie codeuitsnede onderaan).
Groeten,
Dirk
// -------------------------------------------
// Workaround om WMS met bepaalde offset te verschuiven
// -------------------------------------------
OpenLayers.Layer.WMS.prototype.getURL =
function (bounds) {
bounds = this.adjustBounds(bounds);
if (this.sphericalcorrection) {
var y = (bounds.top+bounds.bottom)/2;
var p = new OpenLayers.Geometry.Point(0,y);
var WGS84 = p.transform(
new OpenLayers.Projection("EPSG:900913"),
new OpenLayers.Projection("EPSG:4326"));
var x=WGS84.y;
var dy = 4.440670387E-7*x*x*x*x*x + 9.641338494E-6*x*x*x*x -
3.791462848E-2*x*x*x + 1.521499548E-2*x*x +
745.0588281*x + 0.434;
bounds.top -= dy;
bounds.bottom -= dy;
}
if (this.corry) {
bounds.top += this.corry;
bounds.bottom += this.corry;
}
if (this.corrx) {
bounds.left += this.corrx;
bounds.right += this.corrx;
}
var imageSize = this.getImageSize();
var newParams = {
'BBOX': this.encodeBBOX ? bounds.toBBOX() : bounds.toArray(),
'WIDTH': imageSize.w,
'HEIGHT': imageSize.h
};
var requestString = this.getFullRequestString(newParams);
return requestString;
};
nieuwekaartWMS1 = new OpenLayers.Layer.WMS(
"Nieuwe Kaart 1",
"http://webservice.nieuwekaart.nl/cgi-bin/nkn",
{ layers:
'nk_wonen,nk_werken,nk_voorziening,nk_gemengd,nk_verkeer',
format:'png',
transparent: 'true'},
{ isBaseLayer: false,
singleTile: true,
ratio: 1,
projection: new OpenLayers.Projection("EPSG:900913"),
corrx: 47,
corry: 170
});
De laatste dagen ben ik - deels uit nieuwsgierigheid, deels voor OSM én
omdat ik er misschien voor m'n werk iets mee kan - aan het spelen met
Geoserver en OpenLayers. Daarbij leek het me leuk de OSM kaart als
baselayer te combineren met enige lagen die ik in Oracle heb en de tiles
van De Nieuwe Kaart [1+2].
[1] http://www.nieuwekaart.nl/
[2]
http://webservice.nieuwekaart.nl/cgi-bin/nkn?service=wms&version=1.1.1&request=getCapabilities
OSM en Oracle (SRID = 90112) combineren gaat goed, maar de lagen uit De
Nieuwe Kaart zijn verschoven. Wie kan mij helpen vast te stellen of dit
aan mij ligt of aan de WMS service van De Nieuwe Kaart?
In OpenLayers heb ik een 'standaard' map gedefinieerd met projection
"EPSG:900913", met een OSM laag met sphericalMercator: true. Hierop
probeer ik overlays te tonen zoals:
map.addLayer(new OpenLayers.Layer.WMS.Untiled("Nieuwe kaart - Gemengd",
"http://webservice.nieuwekaart.nl/cgi-bin/nkn",
{ service: 'wms', version: '1.0.0',
layers: 'nk_gemengd',
format: 'image/png',
projection: 'epsg:900913' ,
transparent: true,
isBaseLayer: false }
));
*) Het is mij niet duidelijk of 'projection' of 'srs' de juiste key is om
het coördinatenstelsel aan te duiden.
De WMS claimt '900913' te ondersteunen (zie getCapabilities response
[2]), maar alle geometrieën lijken circa 100m naar het noorden verschoven
te zijn. Zie ik iets over het hoofd, of kan er iets mis zijn met de
configuratie van de WMS server?
De originele data is in RD (EPSG:28992, zie [2]) en moet voor "900913"
dus getransformeerd worden. Bij Martijn van Exel [3] vond ik een
aanwijzing dat er wat mis zou kunnen zijn met de definitie van EPSG:28992
en dat dit best een verschuiving van 100m kan veroorzaken. Elders [4+5]
kreeg ik de indruk dat OpenLayers geen WMS tiles transformeert, maar dat
dit op de server moet gebeuren.
[3]
http://oegeo.wordpress.com/2008/05/20/note-to-self-the-one-and-only-rd-projection-string/
[4] http://trac.osgeo.org/openlayers/wiki/SphericalMercator
[5] http://docs.openlayers.org/library/spherical_mercator.html
Dank, en groet,
J-----.
Jeroen Muris
_______________________________________________
Talk-nl mailing list
Talk-nl@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-nl
_______________________________________________
Talk-nl mailing list
Talk-nl@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-nl