I've kept working at it, and the resolutions you've specified below work, but
only partially.
I've updated my test case, here:
http://www.libsys.und.edu/dev/p/bygdebok/test.php
The initial screen loads okay, but it behaves erratically as you zoom in. Some
zoom levels always work, some levels always fail, and some work only partially:
zoom level 0 = okay
zoom level 1 = okay
zoom level 2 = okay
zoom level 3 = okay
zoom level 4 = BAD
zoom level 5 = okay
zoom level 6 = BAD
zoom level 7 = okay
zoom level 8 = PARTIAL
zoom level 9 = PARTIAL
zoom level 10 = okay
The "partial" levels show up as a mixture of correct map tiles and pink ones.
The pink tiles on the BAD and PARTIAL levels give error messages like these:
400: X,Y values for the tile index were calculated to be {181.999997088,
-24.750002304000002} which had to be rounded to {182, -25} and exceeds
the threshold of 10%. Perhaps the client is using the wrong origin ?
That's from this tile:
http://tinyurl.com/pink-tile-1
Thanks for the help. I appreciate it. At the same time, I wish I didn't have
to ask. I mean, this site worked just fine for years without messing around
with resolutions or anything. I don't know why it suddenly got so finicky.
Will
-----Original Message-----
From: web [mailto:[email protected]]
Sent: Wednesday, September 12, 2012 3:51 PM
To: Martin, Will; [email protected]
Subject: Re: [OpenLayers-Users] "Bad Request" messages
Hi Martin,
Well, in the example you show you are accessing a tiled service with a WMS. As
you know a tiled service has a set a of fixed scales. The tile service is
trying to give back tiles based on your WMS request, at a defined resolution.
So I interpret the error message you receive like this, "I can't give you back
tiles based on the requested resolution (extend), even with a 10% tolerance".
So that's it, you have to call the right resolutions (based on the map
options). Cool, but how to find out correct resolutions?
I guess the best way would be to call a GetCapabilites on the tile service
itself (WMTS). But since you maybe don't know the access point and/or the
access point itself may not be public it may not work. If you know the WMTS
behind this service, call a GetCapabilities on it, and fill in the resolutions
on OpenLayers.
The other way (the ninja one), would be to issue WMS requests and use the
error message to find out one correct resolution. (0.000008333) in your
example. Then you fill it in (look example below) your OpenLayer's code under
the map resolution option. Modify the bbox, get other error messages with other
correct resolutions, etc, etc.
I've played a bit around and achieved some correct resolutions:
//Change in your code like this:
map = new OpenLayers.Map("map", {
controls: [],
! projection: new OpenLayers.Projection('EPSG:4326'),
resolutions: [
0.0833333,
0.0333333,
0.0166666,
0.00833333,!
0.0041666666,
0.001388888,
0.0008333333333333333,
0.00027777777777777776,
0.0001388888888888889,
&n! bsp; 0.000027777777777777776,
0.000008333333333333332
]
});
//And also a valid center:
map.setCenter(new OpenLayers.LonLat(11.21, 64.21));
You will have some valid zoom with this config.
Hope it helps a lot.
Regards
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users