我正在开发一个使用OpenLayers的网站,需要把各种网络管理系统的来源放在一个背景地图的顶部。
我有一个问题,当在地图上放大时,覆盖WMS图层不显示。该问题似乎仅在使用EPSG:900913中的背景WMS图层时发生。我在这里创建了一个演示页面:
http://andarki.dk/Stackoverflow/OpenLayers/WMS.html
除了背景贴图之外,这两个贴图都是相同的。左边的贴图使用EPSG:4326中的背景贴图,而右边的背景贴图使用EPSG:900913。如果放大,您会注意到Nexrad层仅在左侧地图上可见。
如果您查看发送到Nexrad服务器以获取第二个map的两个请求,则BBOX是错误的:
Request1: BBOX=-5009557.0848,-90.000000001863,-179.99999999814,5009287.0848
Request2: BBOX=-179.99999999814,-90.000000001863,5009197.0848,5009287.0848
这些坐标(在EPSG:900913中)对应于非洲,而不是预期的北美。
发布于 2011-03-18 18:22:01
这个问题是由于没有在地图上设置maxExtent而引起的。下面的代码使其工作:
mapWorking900913 = new OpenLayers.Map
(
"mapWorking900913",
{
maxExtent: new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508)
}
);
maxExtent中使用的坐标必须与背景地图在相同的srs中。如果需要更多的背景贴图,则必须在相同的srs中。
发布于 2011-03-17 01:45:16
如果你看一下WMS服务的功能文档(http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r-t.cgi?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilities),你会发现它实际上同时支持4326和900913。
我会尝试在使用OpenStreetMaps的地图上显式设置投影:
mapBroken =新OpenLayers.Map("mapBroken",{
投影:"EPSG:900913",
最大分辨率:2319.89824519781
单位:‘M’});
https://stackoverflow.com/questions/5324781
复制相似问题