我正在使用OpenLayers开发一个网站,需要在背景地图上放置各种WMS资源。
我在放大地图时没有显示叠加WMS图层时遇到问题。 问题似乎只发生在EPSG中使用背景WMS图层时:900913。 我在这里创建了一个演示页面:
http://andarki.dk/Stackoverflow/OpenLayers/WMS.html
除背景地图外,两张地图都相同。 左侧地图在EPSG中使用背景地图:4326,而右侧背景地图使用EPSG:900913。 如果放大,您会注意到Nexrad图层仅在左侧地图上保持可见。
如果您查看发送到Nexrad服务器的第二张地图的两个请求,BBOX是错误的:
要求1:BBOX = -5009557.0848,-90.000000001863,-179.99999999814,5009287.0848
请求2:BBOX = -179.99999999814,-90.000000001863,5009197.0848,5009287.0848
这些坐标(EPSG:900913)对应非洲,而不是预期的北美。
答案 0 :(得分:1)
问题是由于未在地图上设置maxExtent引起的。以下代码使其有效:
mapWorking900913 = new OpenLayers.Map
(
"mapWorking900913",
{
maxExtent: new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508)
}
);
maxExtent中使用的坐标必须与背景地图在同一个srs中。 如果需要更多背景地图,则必须全部都在同一个地方。
答案 1 :(得分:0)
如果您查看Capabilites文档(http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r-t.cgi?SERVICE=WMS&VERSION=1.1.1&REQUEST= WMS服务的GetCapabilities,你会发现它实际上支持4326和900913。
我会尝试在使用OpenStreetMaps的地图上明确设置投影:
mapBroken = new OpenLayers.Map(“mapBroken”,{
投影:“EPSG:900913”,
maxResolution:2319.89824519781,
单位:'m'});