我正在使用openlayers3编写地图应用程序。我正在从openlayers2升级,效果很好。我的问题是从我的wms服务器返回的图像没有显示在div中。返回的图像是png图像。我知道它会返回一个正确的图像,因为我将它保存在我对WMS服务器的api调用中,并检查浏览器中的调试工具并显示图像,返回为" image / png"。我也有一个div =" map"我设置了div的宽度和高度。放大和缩小控件显示在地图上,但实际图像不显示。
代码:
map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Image({
extent: parameters.maxExtent,
source: new ol.source.ImageWMS({
url: '../../WMS/floorplan?',
params: { 'LAYERS': '@Model.LayerName', 'VERSION': '1.3.0', 'FORMAT': "image/png", 'SHAPEFILE': '@Model.ShapeFile'},
ratio: 0.8,
serverType: 'mapserver'
})
})
],
view: new ol.View({
projection: '@Model.Projection',
center: [@Model.CenterLon, @Model.CenterLat],
extent: parameters.maxExtent,
zoom: 0.5
})
});
答案 0 :(得分:0)
似乎在ImageWMS源上设置小于1的比率会导致这种情况。请参阅http://jsfiddle.net/zL9jhgqf/(设置比率为1并再次运行使其正常工作)。
source: new ol.source.ImageWMS({
url: 'http://demo.boundlessgeo.com/geoserver/wms',
params: {'LAYERS': 'topp:states'},
ratio: 0.8,
serverType: 'geoserver'
})
我创建了一个关于它的问题,因为我不知道预期的行为是什么:https://github.com/openlayers/ol3/issues/3926
顺便说一句。使WMS层覆盖少于视口的用例是什么?