Openlayers EPSG:900913中的背景层导致WMS覆盖失败

Openlayers EPSG:900913中的背景层导致WMS覆盖失败,openlayers,wms,Openlayers,Wms,我正在开发一个使用OpenLayers的网站,需要将各种WMS源放在背景地图的顶部 我有一个问题,覆盖WMS层没有显示时,放大地图。 这个问题似乎只有在EPSG:900913中使用背景WMS层时才会出现。 我已在此处创建了一个演示页面: 除了背景贴图外,两个贴图都是相同的。 左侧贴图使用EPSG:4326中的背景贴图,而右侧背景贴图使用EPSG:900913。 如果放大,您将注意到Nexrad层仅在左侧贴图处保持可见 如果查看为第二个映射发送到Nexrad服务器的两个请求,BBOX是错误的:

我正在开发一个使用OpenLayers的网站,需要将各种WMS源放在背景地图的顶部

我有一个问题,覆盖WMS层没有显示时,放大地图。 这个问题似乎只有在EPSG:900913中使用背景WMS层时才会出现。 我已在此处创建了一个演示页面:

除了背景贴图外,两个贴图都是相同的。 左侧贴图使用EPSG:4326中的背景贴图,而右侧背景贴图使用EPSG:900913。 如果放大,您将注意到Nexrad层仅在左侧贴图处保持可见

如果查看为第二个映射发送到Nexrad服务器的两个请求,BBOX是错误的:

请求1:BBOX=-5009557.0848,-90.00000000 1863,-179.9999998145009287.0848

请求2:BBOX=-179.9999999814,-90.0000000018635009197.08485009287.0848


这些坐标(EPSG:900913)对应于非洲,而不是预期的北美。

如果您查看Capabilites文档(http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r-t.cgi?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilities)对于WMS服务,您将看到它实际上同时支持4326和900913

我会尝试在使用OpenStreetMaps的地图上明确设置投影:

mapbroke=新 OpenLayers.Map(“mapbruke”,{
投影:“EPSG:900913”,
最大分辨率:2319.89824519781,
单位:'m'})


该问题是由于没有在地图上设置maxExtent造成的。以下代码使其工作:

mapWorking900913 = new OpenLayers.Map
(
    "mapWorking900913",
    {
        maxExtent: new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508)
    }
);
maxExtent中使用的坐标必须与背景贴图位于同一srs中。
如果需要更多的背景图,那么这些背景图必须位于同一个srs中。

Hi igorti,这似乎没有什么区别。我已经根据你的建议添加了第三张地图,但问题仍然存在。似乎从OpenLayers发送到Nexrad的BBOX是错误的,我已经编辑了我的原始问题以包含此信息。