首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >EPSG:900913中的背景图层导致WMS覆盖失败

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

Stack Overflow用户
提问于 2011-03-16 19:48:17
回答 2查看 2.2K关注 0票数 0

我正在开发一个使用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中)对应于非洲,而不是预期的北美。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-18 18:22:01

这个问题是由于没有在地图上设置maxExtent而引起的。下面的代码使其工作:

代码语言:javascript
运行
复制
mapWorking900913 = new OpenLayers.Map
(
    "mapWorking900913",
    {
        maxExtent: new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508)
    }
);

maxExtent中使用的坐标必须与背景地图在相同的srs中。如果需要更多的背景贴图,则必须在相同的srs中。

票数 1
EN

Stack Overflow用户

发布于 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’});

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5324781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档