openlayers - wms - map not loading
openlayers - wms - map not loading
我创建了一个简单的站点,其中包含一个连接到wms服务器的地图。现在的问题是,地图没有显示,只是查看小图片。这是我创建的网站:http://dl.dropbox.com/u/2418858/index.html
这是我一直在使用的代码:
<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>
当我使用Spatial commander(一个GIS桌面程序)时,我看到的是地图,可以放大和缩小,但当我使用Openlayers时,我看不到地图。
因此,我所做的是用代理拦截vom Spatial Commander的请求,看看这个请求与我从我的网站发送的请求有何不同。
我发现的唯一区别是BBOX参数,在SC中看起来像这样:
BBOX=495149.712089618,4954209.6147000715,1173065.9355847104,5633477.615310807
从我的网页发送的请求中的参数看起来像这样:
BBOX=-351.5625,-351.5625,351.5625,351.5625
所以我手动更改了通过我的网页发送的BBOX参数,得到了这个:手动请求原来是地图!
现在我的实际问题:
- 为什么地图没有显示在我的网站上
- 为什么Openlayers自动发送的BBOX参数与空间命令器发送的值相差如此之远
- 我如何使我的地图工作
谢谢!
尝试在map
对象上设置属性maxResolution
:
map = new OpenLayers.Map("map", {
controls : map_controls,
maxResolution: 1000
});
OpenLayers本身只处理几个投影(Web-Mercator和WGS84)。对于其他投影,您需要包含Proj4js库,该库位于-http://proj4js.org/
如果可用(即添加到您的网页),OpenLayers会自动与此库集成。
接下来为您的投影添加投影参数(在代码中使用之前)。在这种情况下,EPSG:32632
您几乎可以从http://spatialreference.org(当网站启动时)Proj4js格式:
Proj4js.defs["EPSG:32632"] = "+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs";
http://spatialreference.org/ref/epsg/32632/proj4js/
然而,看看你的WMS服务的功能-它也可以在Web Mercator投影中请求-所以没有必要重新投影:
最后,你发送的演示链接显示了一张地图——至少在FireFox中是这样。你确定你没有JavaScript错误吗?这一行中多了一个逗号:
key : '6ae2a41178c77ccee1db7248c9f92b04',
这通常会导致Internet Explorer停止显示地图。
问题是您没有在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)
});
- Jquery UI Not Loading
- Google Maps Javascript API is not loading
- JavaScript not loading?
- Ajax Not Loading PHP
- jquery img not loading "scr"
- O365 SharePoint CEWP with Javascript Not Loading?
- Facebook Javascript api not loading
- Opera Mini Jquery AJAX not loading
- Jquery append not loading javascript for element
- has_one / belongs_to not loading
- Footable not loading
- Gruntjs angularjs cordova image not loading up
- Webview not loading javascript
- RequireJS not loading createjs
- openlayers - wms - map not loading
- Internet Explorer 7 Ajax not loading
- onclick not loading iframe
- Facebook Javascript SDK Not Loading
- Jquery Not loading?
- Ruby on rails 4.0 + javascript not loading