Javascript openlayers-wms-地图未加载
我创建了一个简单的站点,其中有一个连接到wms服务器的地图。 现在的问题是,地图没有显示,只是一个小图片的视图。以下是我创建的网站: 以下是我一直在使用的代码:Javascript openlayers-wms-地图未加载,javascript,geospatial,openlayers,wms,Javascript,Geospatial,Openlayers,Wms,我创建了一个简单的站点,其中有一个连接到wms服务器的地图。 现在的问题是,地图没有显示,只是一个小图片的视图。以下是我创建的网站: 以下是我一直在使用的代码: <script type="text/javascript"> var map; var wms; var map_controls = [new OpenLayers.Control.LayerSwitcher(),
<script type="text/javascript">
var map;
var wms;
var map_controls = [new OpenLayers.Control.LayerSwitcher(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.MouseToolbar(),
new OpenLayers.Control.KeyboardDefaults()];
function init() {
map = new OpenLayers.Map("map", {
controls : map_controls
});
wms = new OpenLayers.Layer.WMS("Satellitenbild_30m", "http://gis.lebensministerium.at/wmsgw/", {
layers : 'Satellitenbild_30m',
key : '6ae2a41178c77ccee1db7248c9f92b04',
}, {
projection : new OpenLayers.Projection('EPSG:32632'),
singleTile : true,
buffer : 0,
ratio : 1
});
map.addLayer(wms);
map.zoomToMaxExtent();
}
</script>
</head>
<body onload=init()>
<div id="map" style="width: 1000px; height: 1000px"></div>
</div>
</body>
从我的网页发送的请求中的参数如下所示:
BBOX=495149.712089618,4954209.6147000715,1173065.9355847104,5633477.615310807
BBOX=-351.5625,-351.5625,351.5625,351.5625
因此,我手动更改了通过我的网页发送的BBOX参数,并得到以下结果:
原来是地图
现在我的实际问题是:
- 为什么地图没有显示在我的网站上李>
- 为什么Openlayers自动发送的BBOX参数与spatial commander发送的值相差如此之远李>
- 我怎样才能使我的地图工作
谢谢 OpenLayers本身只处理几个投影(Web Mercator和WGS84)。对于其他投影,您需要包括Proj4js库,该库位于- 如果该库可用(即添加到您的网页),OpenLayers将自动与该库集成 接下来为投影添加投影参数(在代码中使用之前)。在本例中,EPSG:32632 您几乎可以通过Proj4js格式从(站点启动时)获取所有投影详细信息:
Proj4js.defs["EPSG:32632"] = "+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs";
但是,从功能上看,也可以在Web Mercator投影中请求,因此无需重新投影:
最后,您发送的演示链接至少在FireFox中显示了一个地图。你确定没有JavaScript错误吗?这一行中有一个额外的逗号:
key : '6ae2a41178c77ccee1db7248c9f92b04',
这通常会导致Internet Explorer停止显示地图 尝试在map
对象上设置属性maxResolution
:
map = new OpenLayers.Map("map", {
controls : map_controls,
maxResolution: 1000
});
问题是您没有在OpenLayers贴图对象上设置投影。在这种情况下,OpenLayers设置默认投影,即“EPSG:4326”。然后您还可以设置maxExtent属性,以便OpenLayers知道应该为哪个区域发送图像请求。在init方法中,执行以下操作:
map = new OpenLayers.Map("map", {
controls : map_controls,
projection: "EPSG:32632",
maxExtent: new OepnLayers.Bounds(495149.712089618,4954209.6147000715,1173065.9355847104,5633477.615310807)
});
它不起作用的唯一原因是,您使用的投影中没有请求BBOX。我真的不知道如何修复它。可能与在地图初始化中声明maxExtent有关。非常感谢您的提示,因为现在我至少能够查看地图,尽管缩放级别相差很远,我无法确定正确的maxExtent。。。[链接]非常感谢!我现在已经包括了Proj4js,并且为epsg做了定义:32632,但是现在我看到我的站点发送了一个对EPSG31287.js的请求,我不知道它的定义,因为spatialreference.org已经关闭了…当它们再次打开时,我会看一看…所以我已经在我的站点中包括了Proj4j,但遗憾的是它没有改变任何东西。同样的问题:地图正在显示,但在某种程度上缩放因子太高,我无法更改它,因为这样地图就不再显示了……firebug没有显示任何脚本错误,但我已经修复了逗号。问题是,当我将投影更改为其他内容时,地图不会显示…谢谢!这就成功了!地图现在正在显示,就像建议的那样。我现在只需要弄清楚如何转换gps坐标。。。再次感谢你!谢谢我的问题是没有设置maxResolution。